51CTO技术论坛_中国领先的IT技术社区's Archiver

dorothyle 发表于 2008-7-21 15:11

求助:Java中字符类的intern()方法的返回值

各位高手,大家好。关于String类中的方法intern(),我在测试中有点迷惑:
String s1 = "Welcome to Java!"
String s2 = s1.intern();
System.out.println("s1 = s2 is " + (s1 == s2));
    程序的输出是s1 = s2 is true。这个结果我可以理解,因为s1是用字符串直接量构造的,这样的字符串是规范字符串,而intern()方法返回了一个规范字符串,所以s1和s2相等。但是下面的为什么不等呢?
String s1 = new String("Welcome to Java");
String s2 = s1.intern();
System.out.println("s1 = s2 is " + (s1 == s2));
    这时程序的输出是 s1 = s2 is false. 这有什么不同吗?

臧圩人 发表于 2008-7-21 18:08

请见我的《JAVA面试题解惑系列》的第四篇文章:
[url]http://zangweiren.j[/url] a v a e y e.com

dorothyle 发表于 2008-7-21 19:34

知道了

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.