为什么两个具有相同名称的字符串具有相同的对象实例?

时间:2012-05-27 17:48:48

标签: java instance

  

可能重复:
  String equality vs equality of location

这是我的第一个问题,请耐心等待,

我有以下代码:

String str1 = "hello";
String str2 = "hello";
System.out.println(str1 == str2);

结果是 true

为什么呢?

2 个答案:

答案 0 :(得分:2)

当Java在编译期间找到相同的文字时,它会创建一个单独的实例并将其引用到所有引用。

str1和str2都有相同的文字“hello”,因此jvm创建它的单个实例并将其分配给str1和str2。

所以当你做str1 == str2时你就会变成现实。 (两者都引用同一个实例)

答案 1 :(得分:-4)

因为==意味着等于所以你说str1和str2彼此相等..这是真的是的