首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

2012-04-08 
再请教一个超级新手的问题。比如说int[] arr new int[5]System.out.println(arr.length)在这里arr.lengt

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

热点排行