1、下面这段代码的输出结果是什么?
String a = "helloworld";
String b = "hello" + "world";
System.out.println((a == b));
输出结果为:True。
原因是String对字符串的直接相加,会在编译期进行优化。即hello+world在编译时期,被优化为helloworld,所以在运行时期,
他们指向了同一个对象。
2、下面这段代码的输出结果是什么?
String a = "helloworld";
String b = "hello";
String c = b + "world";
System.out.println((a == c));
输出结果为:False。
原因是c并非两个字符串直接相加,包含了一个字符串引用,这时不会做编译期的优化。所以a、c最终生成了两个对象。
本文探讨了Java中字符串拼接的不同方式及其对内存的影响,通过两个实例对比了直接拼接与使用变量引用的区别,解释了为何某些情况下拼接操作会导致不同的对象生成。
2906

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



