ITEEDU

Java Gossip: 对象数组

就如同Java的基本数据型态可以宣告为数组,Java中的对象也可以使用数组来加以管理,但两者的索引存取意义有些不同。

使用Java的基本数据型态来宣告数组,每一个数组的索引位置都可以储存一个数值,这不用怀疑,但是如果是对象数组,其每一个索引位置是用来参考至一个对象,例如宣告一个字符串对象数组:

String[] names = {"caterpillar", "momor", "beckyday","bush"}; 

在这个例子中,names中的每个索引位置其真正意义为参考,如下所示:

names[0] => 参考至"caterpillar"对象
names[1] => 参考至"momor"对象
names[2] => 参考至"beckyday"对象
names[3] => 参考至"bush"对象

如果您作了下面的指定:

names[1] = names[2];

则索引位置的参考会变成如下:

names[0] => 参考至"caterpillar"对象
names[1] => 都参考至"beckyday"对象 <= names[2]
names[3] => 参考至"bush"对象

如果是基本数据型态的话,就不是如此,例如:

int arr[] = {1, 2, 3, 4}; 
arr[1] =arr[2]; 

经过以上的宣告与指定后,arr[2]的值会复制给arr[1],也就是说它们两个拥有各自的值,虽然arr[1]的值等于3,arr[2]的值也等于 3,但储存在不同的内存位置,彼此不相互干扰。