【发布时间】:2013-04-15 08:01:21
【问题描述】:
为什么这是错误?
String str1 = new String("Java ");
String str2 = str1;
System.out.println(str1.trim()==str2.trim()); //false
最初 str2 引用 str1 对象。因此,对于 str1==str2,与 == 比较将返回 true
那为什么 .trim() 方法的这个 false 呢?
即使它为文字返回 false(没有 new 关键字)
String str1 = "Java "; //this is now without new keyword
String str2 = str1;
System.out.println(str1.trim()==str2.trim());
注意:我知道如何使用.equals 方法。但是想知道== 的行为,尤其是在 .trim() 的情况下,上面给出了两个示例。
【问题讨论】:
-
你得到什么输出?
-
因为它们现在不是同一个引用。记住 String 是不可变的
标签: java