1.String a = "a";会在字符串常量池创建对象
2.String b = new String("a"); 如果字符串常量池没有,会在字符串常量池创建(如果执行了1,就不会创建)。并在堆空间开辟一块内存,创建一个新对象。
a==b 为false
intern()接口,a==b.intern()为true;
扩展
new String("a") + new String("b");
创建了几个对象?
本文探讨了Java中创建字符串对象的两种方式:通过字面量和`new`关键字。详细解释了它们在字符串常量池和堆内存中的行为,并分析了`intern()`方法对字符串比较的影响。同时,讲解了`newString(a) + newString(b)`表达式创建对象的数量。
1.String a = "a";会在字符串常量池创建对象
2.String b = new String("a"); 如果字符串常量池没有,会在字符串常量池创建(如果执行了1,就不会创建)。并在堆空间开辟一块内存,创建一个新对象。
a==b 为false
intern()接口,a==b.intern()为true;
扩展
new String("a") + new String("b");
创建了几个对象?
1010
279

被折叠的 条评论
为什么被折叠?