« 上一篇下一篇 »

数组内部成员初始化

所有数组(不论它是primitive的还是对象的)都有一个可供查询的内部成员)但是你不能修改——它会告诉你这个数组有多少元素。这个成员就是length。由于Java的数组,同C和C++的一样,是从零开始计算的,因此你能访问的最大的数组下标length-1。如果是C和C++的数组,即使你过了界,它也会安安静静地接受这个指令,然后放你到内存里乱串一气,许多臭名昭著的bug就是由此产生的。

但是Java能让你免受这些问题的困扰。一旦你出了界,就会引发一个运行时错误。当然,每次访问数组的时候都要花时间检查,而且代码也会长些,但是你没法把它关了,也就是说,如果效率非常重要,那么访问数组就可能会成为拖累程序效率的一个因素。但是为了internet的安全和程序员的编程效率,Java的设计者们认为这个代价还是值得的。

如果写程序的时候还不知道数组要有多少元素,那该怎么办?你可以直接用new来创建数组的元素。这时,甚至能用new创建primitive的数组(new不能用于创建非数组的primitive)。数组的大小是由random方法随机选择的,这个方法会返回一个从零到那个参数之间的值。由于它是随机产生的,因此很清楚数组实际上是在运行时创建的。此外,程序的输出也证明了,primitive类型的数组元素会被初始化为空值。

« 上一篇下一篇 »