购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.2.3 Java中的数组

许多编程语言都支持数组。然而在C和C++里,因为数组的本质是内存块,所以使用数组是十分危险的。也就是说,如果C++程序访问了数组边界之外的内存,或者在内存被初始化之前就对其进行操作(这个问题非常普遍),那么结果如何就难以预料了。

Java的一个核心设计目的是安全,于是许多折磨C和C++程序员的问题在Java里已经不复存在了。例如,Java的数组一定会被初始化,并且无法访问数组边界之外的元素。这种边界检查的代价是需要消耗少许内存,以及运行时需要少量时间来验证索引的正确性。其背后的假设是,安全性以及生产力的改善完全可以抵消这些代价(同时Java也会优化这些操作)。

当你创建一个用于放置对象的数组时,实际上数组里包含的是引用,而这些引用会被自动初始化为一个特殊的值:null。Java会认为一个值为null的引用没有指向任何对象,所以当你操作引用之前,需要确保将其指向了某个对象。如果你试图操作一个值为null的引用,系统会返回一个运行时报错。因此,Java通过以上手段规避了那些常见的数组问题。

此外,你也可以创建一个放置基本类型的数组。编译器会确保对该数据进行初始化,并将数组元素的值设置为0。

本书后续(尤其在第21章中)会对数组进行更为详细的介绍。 W6et9NyGtQjLVTJ8Q6s3Njm91FVJML6e/KNQOTHrxLer6fSIUIDUBLROeZWZHljm

点击中间区域
呼出菜单
上一章
目录
下一章
×