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