String str[] = new String[3];
有人可以向我解释上述行的记忆图。它会有多少个对象和参考?
答案 0 :(得分:7)
该行分配一个对象,该对象是三个String引用的数组。默认情况下,这些引用初始化为null
。
它还将str
定义为包含对字符串数组的引用的局部变量。它通过引用刚刚创建的对象来初始化变量。
所以你有这个图:
str (local variable)
+--------+ array object
| -----+---------> +-------------+
+--------+ | null | (can hold a reference to a String)
+-------------+
| null | (can hold a reference to a String)
+-------------+
| null | (can hold a reference to a String)
+-------------+
答案 1 :(得分:1)
new String [3]将创建一个对象,3个String引用的数组,用nulls初始化。对象大小(对于32位JVM)=标头(8)+长度(4)+ 3个引用(每个4个字节)
答案 2 :(得分:0)
它将有一个Array实例,引用3 String objets。
答案 3 :(得分:0)
另外,注意到你可能是新手(可能只是一个错字,对不起,如果我错了),对你的帖子进行更正。 代码段中的正确语法应为
String[] str = new String[3];