求助: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. 这有什么不同吗? 请见我的《JAVA面试题解惑系列》的第四篇文章:
[url]http://zangweiren.j[/url] a v a e y e.com 知道了
页:
[1]