一共2个 A、B引用的“abc”,“de”两个如果用String A = new String("abc") String B = new String("de") 就是四个
String A,B,C;//没有创建对象 A = "abc"; //文字abc就是一个对象,将被放入内存的 “字符串文字pool” B = "de"; //同上 A = new String("abc"); /* 如果“字符串文字pool”中有当前文字abc,则文字abc不创建新对象。new 创建一个文字abc的copy,放入内存的heap中。变量A指向heap中的那个。 B = new String("defghi"); /*同上,这时就创建了两个对象,文字的在pool中,new出来的在heap中*/
A = new String("abc");
B = new String("de");
以上代码共创建了多少个对象?
所以是生成两个对象,
因为c=null(没有赋值)所以说只有两个对象。
第二个不太清楚我认为是4个
因为a和b被重新定义而且还多了"abc","de"这两个对象所以说是4个。
不知道这样说对不对,希望知道确切答案的解释一下。
2个
4个
new String("abc");"abc"1个 new1个
String str;
并不创建对象。
A、B引用的“abc”,“de”两个如果用String A = new String("abc")
String B = new String("de")
就是四个
A = "abc"; //文字abc就是一个对象,将被放入内存的 “字符串文字pool”
B = "de"; //同上
A = new String("abc"); /* 如果“字符串文字pool”中有当前文字abc,则文字abc不创建新对象。new 创建一个文字abc的copy,放入内存的heap中。变量A指向heap中的那个。
B = new String("defghi"); /*同上,这时就创建了两个对象,文字的在pool中,new出来的在heap中*/
1、<=2
2、<=4认证学习指南中有图解,