【发布时间】:2021-08-28 02:07:15
【问题描述】:
我在 sn-p 下面厌倦了这个,得到了 3 个对象和 3 个引用的答案。 但在答案键中说它是 4 个对象和 3 个引用。如果我错了或答案键,我会感到困惑。请有人帮忙。
String str1=new String("Java"); //line 1
String str2=new String("GFT"); //line 2
String str3=str1; //line 3
str1=str1.concat(str2); //line 4
str3=str2.toUpperCase(); //line 5
我的答案的解释:
参考:str1,str2,str3。所以引用数=3。
对象:最初创建的对象 count=0。
- 第 1 行创建具有值“Java”和引用“str1”的新对象。对象创建计数=1。
- 第 2 行创建具有值“GFT”和引用“str2”的新对象。对象创建 count=2。
- 第 3 行创建新引用“str3”,它不创建新对象,它指向第 1 行 (str1) 中创建的对象。
- 第 4 行创建了值为“JavaGFT”的新对象,str1 现在指向该对象。对象创建计数=3。
- 第 5 行有一个值“GFT”,因为它已经存在 str3 现在指向由 str2 创建的对象,因为 str2 是使用 new 运算符创建的。(我验证了 str2==str3 是否返回 true) 所以最终对象创建了 count=3,引用 count=3。
是这样吗?
【问题讨论】:
标签: java string object heap-memory