在开发中,数组是我们最常用的数据结构,那么java中的数组是不是对象了,这是一个很值得思考的的问题,别急,我们来一步一步的分析,首先我们来分析对象的特点,说的直白点就是对象的特点是封装了一些数据,同时提供了一些属性和方法,那么我们再来看看数组,数组是指具有相同类型的数据的集合,它们一般具有固定的长度,并且在内存中占据连续的空间。另外我们需要知道一点,在C/C++语言中,数组名只是一个指针,这个指针指向了数组的首元素,既没有属性也没有方法调用,那么在java语言中,数组不仅有自己的属性(列如length属性,作用输出数组长度)也有一些方法可以被调用(列如clone方法)那么,从数组的这些角度我们可以分析出,数组就是个对象。
我们来写个案列:每个数组类型都有其对应的类型可以通过instanceof来判断数据的类型
public class DemoTest {
public static void main(String[] args) {
int[] a = {1,2,3,4,5};
int[] [] b = new int[2][4];
String[] s = {"a","b"};
if(a instanceof int[])
System.out.println("我是一维数组");
if(b instanceof int[][])
System.out.println("我是二维数组");
if(s instanceof String[])
System.out.println("我是字符串数组 ");
}
}
//输出
E:\java\bin\java.exe "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2018.3.2\lib\idea_rt.jar=4339:D:\Program Files\JetBrains\IntelliJ IDEA 2018.3.2\bin" -lang\2.6\commons-lang-2.6.jar com.mayikt.handler.controller.DemoTest
我是一维数组
我是二维数组
我是字符串数组