Java当中,数组对象与对象数组的区别与联系
Java当中,数组对象与对象数组的区别与联系:数组对象本质是对象,是指一个数组的对象,可以看作为有指定个数的其对应原始类型的引用;而所谓的对象数组,就是指包含了一组相关的对象。概括来讲,对象数组是一个数组对象,但反过来并不成立。
1.Java中的数组对象
数组是一种特殊类型,是在运行中生成的。一个数组的对象可以看作为有指定个数的其对应原始类型的引用。比如 Object[] a1 = new Object[2],就是有一个Object的一维数组类,和一个这个类的对象叫a1,a1中有2个指向Object类型对象的引用,默认为null。Object[][] a2 = new Object[2][],就是有一个Object二维数组类,里面包含了2个Object一维数组类的对象的引用。Object[] a2 = new Object[3];这个a2的类型实际上与a1的类型是一样的,都是Object的一维数组类,只不过对象中可用的Object对象的引用数量不一样。
2.Java中的对象数组
而所谓的对象数组,就是指包含了一组相关的对象。但是在对象数组的使用中一定要清楚一点:数组一定要先开辟空间,但是因为其是引用数据类型,所以数组里面的每一个对象都是null值,则在使用的时候数组中的每一个对象必须分别进行实例化操作。严格来讲,对象数组是一个数组对象,但反过来并不成立。
延伸阅读
Java中数组是对象吗
在Java当中,数组和对象可以说是两个概念,但两者之间又有一定的相关性。在计算机层面看,数组是内存块,并且也封装了一些数组,因此数组也是对象。
1.Java中的数组
数组是用一个标识符和下标来表示,下标可以区分数组中不同的元素。如果一个数组只有一个下标,则称为一维数组。有两个下标,则为二维数组。一般只用到三维数组,而一维和二维数组较常用。
数组是一种引用类型,在内存中数组元素和数组变量是分开存放的,其中引用变量存储在栈内存中(stack),数组元素则是在堆内存(heap)中。数组也是一种基本数据结构,用来存储同一类型值的集合。
2.Java中的对象
对象简单的说就是一个Class的实例,创建一个对象,最常见的方式是new,如:new MyClass()。但是MyClass里面可以有数组,那么这个数组就是这个类的属性。
3.数组和对象的区别与联系
在较高层面讲,对象是某个类的具体实现,并且对象具有各种属性和一些特定的动作行为;在计算机层面讲,对象就是内存中的内存块,内存块中封装了一些数据,也就是对象的属性和方法。因此,在高层面看,数组不是某个类的具体实现,而是多个个体的集合。因此数组不是对象;而在计算机层面看,数组是内存块,并且也封装了一些数组,因此数组也是对象。

