这是我从网上看到的一段话:
---------------------------------
String str1 = "Hi"
String str2 = "Hi"
那么编译器会很聪明的只创建一个实例而让 str1 和 str2 都指向这个地址
所以这时 str1 == str2 就会返回 true
---------------------------------应该是可以这么理解吧,
但是str1 和 str2 都指向这个地址(即它们是同一个引用),
那么如果str2=str2+"jim";
那么这时 str1 == str2 为什么返回 false,而不是true,
它们不都是指向同一个地址吗?
---------------------------------
String str1 = "Hi"
String str2 = "Hi"
那么编译器会很聪明的只创建一个实例而让 str1 和 str2 都指向这个地址
所以这时 str1 == str2 就会返回 true
---------------------------------应该是可以这么理解吧,
但是str1 和 str2 都指向这个地址(即它们是同一个引用),
那么如果str2=str2+"jim";
那么这时 str1 == str2 为什么返回 false,而不是true,
它们不都是指向同一个地址吗?
就是实际上str2又创建了一个新的String,所以引用会变了String都是创建之后不可修改的,对他们进行+操作时只能重新生成一个