如果java中的数组是一个对象,那么根据OOPS原则,只有类可以有对象。所以我的问题是数组实际上是哪个类的对象?
答案 0 :(得分:1)
阅读JLS Sec 10.8:
每个数组都有一个关联的Class对象,与具有相同组件类型的所有其他数组共享。
虽然数组类型不是类,但每个数组的Class对象的行为如下:
每个数组类型的直接超类都是Object。
每个数组类型都实现了Cloneable和java.io.Serializable接口。
String[]
是String[].class
的一个实例; int[]
是[{1}}等的实例。这些是int[].class
和String.class
的不同类。
但是没有" int.class
"所有数组的超类,如第一个项目符号中所述:Array
和String[]
都是int[]
的直接子类。