读书人

再请问一个超级新手的有关问题

发布时间: 2012-04-08 14:38:30 作者: rapoo

再请教一个超级新手的问题。
比如说
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 成员,在这之后才是数组中每个索引区的数据空间。

读书人网 >J2SE开发

热点推荐