java中固定大小内存分配的字符串数组

时间:2015-02-25 07:52:01

标签: java string

String str[] = new String[3];

有人可以向我解释上述行的记忆图。它会有多少个对象和参考?

4 个答案:

答案 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];