Java中的数组属于哪个类解决办法

Java中的数组属于哪个类
经常用java数组的length属性,但不知道数组属于哪个类,,,,我看他的其他方法都是object的,但object没有length属性呀
------解决思路----------------------
实际上,数组的 length 属性是 Java 编译器在编译时给加上的,为其分配了 1 个字长的内存空间,用于存储数组的长度。这个 length 属性相当于数组对象中一个 public final static int length = ?; 的属性。

Java 中还有一个跟数组 length 属性类似的,也就是类的 class 属性,比如 String.class,这个 class 也是编译器在编译时动态给加上的,呵呵。 

参考 数组中的length属性是属于Java中的哪一个类的
------解决思路----------------------
数组是Java特殊处理过的,
int  i  =  args.length;
可以通过javap  看到指令为aload_0arraylengthistore_1return可见Java专门为Array定义了取得长度的指令了
------------------------------------------------------------------------------
数组的length即不是方法,也不是字段。
在一个数组对象上调用length,会被Java编译器编译成一条arraylength指令(Java  binary  code)。
而访问字段的语句会被编译成getfield或getstatic指令,调用方法的语句则会被编译成invokestatic,invokevirtual或invokespecial等指令。
Java字节码中有许多单独针对数组的指令,它们在其它任何非数组类型的对象上调用都是毫无意义的。
由此可见,它们本就不一样,不能等同起来直接进行对比。
------------------------------------------------------------------------------
1。length不是array的方法或者属性
这个很好证明:new个数组出来  getDeclaredFields()是0
2。java对数组的操作是指令级的。
------解决思路----------------------
数组本身是属于object类的,就像能理解的,它的equals和tostring方法是继承自object的
------解决思路----------------------
public class Test {
    public static void main(String[] args) {
        int[] array = new int[10];
        System.out.println(array.getClass()); // class [I
        System.out.println((new double[10]).getClass()); // class [D
    }
}