java 中数组是值类型还是引用类型?

java 中数组是值类型还是引用类型?

Object o = new int[] {1,2,3};

观点1;数组类型是一族类型,它们都继承自System.Array,而System.Array又继承自System.Object。所有的数组类型都是引用类型。

观点2:看你的数组是用的类对象还是基本数据类型了
如果是值类型的数组,比如int[],那里面存的就是值类型。
引用类型,就存引用咯!

观点3:除了基本数据类型,其他的都是引用数据类型

或者其他说法!

除了基本数据类型,其他的都是引用数据类型

数组本身是堆中的对象,数组可以保存基本数据类型和对象的引用。

java只有值传递 没有引用传递。
有引用和有引用传递是两个概念。

个人理解是引用类型

Object o = new int[] {1,2,3};
if(o.getClass().isArray()){
if(o.getClass().getComponentType().isPrimitive()){
System.out.println("基本数据类型");
}else{
System.out.println("引用数据类型");
}
}

上面说的对,很棒