String a = "ab"+"c";
这时候生成的"abc"会放入StringPool(正解),
String a="ab";
String c=b+"c";
由于和字面量"c"进行+运算的是一个对象而不是字面量,这样Java虚拟机就会在堆里面生成一个新的对象并返回该对象引用,此时变量a和变量c指向了两个不同的地址。
即使String a = new String("abc"),虽然这样一来a和c都是指向堆的,但她们还是指向两个不同的对象,因为b+"c"会新生成一个对象。
String永远的问题
最新推荐文章于 2024-02-02 09:15:02 发布