数组是第一流的对象

zhushican | 建站教程 | 2014年8月14日

数组是一个简单的线性序列,所以它可以快速的访问其中的元素。但是速度是有代价的;当你创建了一个数组之后它的容量就固定了,而且在其生命周期里不能改变。也许你会提议先创建一个数组,等到快不够用的时候,再创建一个新的,然后将旧数组里的reference全部导到新的里面。其实arrayList就是这么做的。但是这种灵活性所带来的开销,使得arrayList的效率比起数组有了明显的下降。

不管你用的是哪种类型的数组,数组的标识符实际上都是一个“创建在堆里的实实在在的对象”reference。实际上是那个对象持有其他对象的reference。你既可以用数组的初始化语句,隐含地创建这个对象,也可以用new表达式,明确创建这个对象。只读的length属性能告诉你数组能存储多少元素。但是,创建数组对象的时候,它所持有的reference都会被自动地初始化为null,所以你可以通过检查数组的某个槽位是否为null,来判断它是否持有对象。以此类推,primitive的数组,会自动将数字初始化为零。

[阅读全文]
2次浏览 0条评论 数组  第一流  对象  
回顶部