日期:2014-05-20  浏览次数:20590 次

对象数组
请教对象数组的基础问题


以下产生几个对象?
int[] arr = new int[3];
我的答案:1

以下的宣告产生几个对象?
int[][] arr = new int[2][3];
我的答案:2

以下产生几个对象?
Integer[] arr = new Integer[3];
我的答案:3

如上问题和我的答案,还请大家帮忙看下并稍作解释下



------解决方案--------------------
int是原生类型,Integer是类,所以int i = 0;不能说成一个对象,Integer i = 0;就是对象了,而对于二维数组,其实就是两个一维数组啊。
------解决方案--------------------
第一题应该是实例化了一个数组对象和申明了3个数字对象,但是数字对象没有实例化。
第二题我感觉应该还是一个数组对象,这里的数组地址应该还是连续的
第三题我觉得应该是一个数组对象和三个数字对象。


------解决方案--------------------
引用:
就是刚才那样的啊,int[] i = new int[3];这是一个对象,而Integer[] i = new Integer[3],里面存的是三个对象啊。

Integer[] i = new Integer[3],里面没有往里面存,应该也还是一个对象吧?只不过开辟了那个空间。在堆内存。
------解决方案--------------------
我认为三题均为一个对象。
int[] arr = new int[3]。创建一个数组对象
int[][] arr = new int[2][3];还是一个数组对象
Integer[] arr = new Integer[3];还是一个数组对象

后面的数字是分配存储空间,并不是创建对象。

个人见解。