数组是第一流的对象

作者: zhushican 分类: 建站教程 发布时间: 2014年8月14日 次浏览 0条评论

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

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

容器类只能持有Object对象的reference。而数组除了能持有Object的reference之外,还可以直接持有primitive。当然可以使用诸如integer之类的wrapper类,把primitive的值放到容器中,此外,primitive数组的效率要比wrapper类容器的高出许多。

本文出自 老域名查询 ,转载时请注明出处及相应链接。

本文永久链接: http://www.sc8323.com/2014/652.html

回顶部