大可制作:QQ群:31564239(asp|jsp|php|mysql)

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,但储存在不同的内存位置,彼此不相互干扰。