我想了解在Java中使用+和+=操作符时内存分配的情况。
我知道字符串字面量被存储在字符串常量池中,在情况#1中,s1和s2都引用字符串常量池中的相同内存。
在情况#2中,即使使用+运算符,它仍然引用字符串常量池中的相同对象。
有趣的是情况#3。在这种情况下内存是如何分配的?它与情况#2有何不同?
在情况#2中,即使使用+运算符,它仍然引用字符串常量池中的相同对象。
有趣的是情况#3。在这种情况下内存是如何分配的?它与情况#2有何不同?
//Case #1
String s1 = "Hello Java";
String s2 = "Hello Java";
System.out.println(s1 == s2); //true
//Case #2
s1 = "Hello" + " Java";
s2 = "Hello Java";
System.out.println(s1 == s2); //true
s1 = "Hello";
s1 += " Java";
s2 = "Hello Java";
System.out.println(s1 == s2); //false
equals()
进行字符串比较。 - B001ᛦ