再请教一个超级新手的问题。
比如说
int[] arr = new int[5]
System.out.println(arr.length);
在这里arr.length是 arr的长度,那么length是什么啊?
请高手指教。
------解决方案--------------------就是长度。。。。确切的说是属性。。。
------解决方案--------------------1。length不是array的方法或者属性
这个很好证明:new个数组出来 getDeclaredFields()是0
2。java对数组的操作是指令级的。
数组的length即不是方法,也不是字段。
在一个数组对象上调用length,会被Java编译器编译成一条arraylength指令(Java binary code)。
------解决方案--------------------.length是数组的一个属性,返回的是数组的长度。
一般最好用getLength()这个方法。
------解决方案--------------------数组的 length 静态成员和类的 class 静态成员都是由 Java 编译器在编译后加上的,是一个只读成员,不允许被修改。
一个数组对象在内存中,头 4 个字节就是用来保存 2 楼所说的 arraylength 值,也就是数组的 length 成员,在这之后才是数组中每个索引区的数据空间。