在java中运行这一句代码:
String[][] str = new String[3][4];
假设是第一次运行,在内存中会产生多少个对象?请说明理由,不要说一个单纯的数字.谢谢.
由于没有初始化,数组中都是null,即没有产生新对象,只有一个二维数组对象
是一个么?使用new在堆内存中创建了一个对象。
我觉得单纯的这个二维数组的定义来说,只是生成了一个array对象。
编写demo
public class CsdnDemo {
public static void main(String[] args) {
String[][] str = new String[3][4];
}
}
通过javap反编译可以看到:
而数组中的每个元素都是指向string的引用的,而String的创建方式是常量还是new String()的也会影响最终对象的个数的。
可以肯定的是,只有一个二维数组的引用,真正对象的个数还要看你对各个元素赋值的方式,那么这就归结为String定义时到底创建了几个对象的问题了。
只有一个对象,它是数组对象【String[][]】,里面还没有放置任何元素,就没有其他对象。
ps:我认为这跟是否String数组无关,单纯数组实例化概念。
由于没有初始化,数组中都是null,即没有产生新对象,只有一个二维数组对象