可能重复:
How to know how many objects will be created with the following code?
我在程序中有以下代码行
String str1 = "abc";
String str2 = str1;
String str3 = "abc";
我想知道在执行上面3行代码时会创建多少个对象。
答案 0 :(得分:3)
2,1字符串对象,字符串包含1个字符数组。
答案 1 :(得分:3)
所有三个引用都引用相同的实习String对象。
答案 2 :(得分:2)
只创建了一个对象。其余的(str2,str3)被称为内部字符串池。
答案 3 :(得分:2)
它可以创建0
或1
对象。
如果已经有一个值为"abc"
的实习String对象,则不会创建任何对象,如果它不存在,则会创建它。
答案 4 :(得分:-1)
3个对象,但它们都使用相同的实习字符串(即字符串仅在运行的JVM中存在一次)。