也可以將同一個對象指定給兩個參考引用名稱,當對象的值其中一個參考引用名稱進行操作而變更時,另一個參考引用名稱所參考引用到的值也會變動。
public class AdvancedArray{
public static void main(String[] args){
int[] arr1 = {1,2,3,4,5};
int[] tmp1 = arr1;
int[] tmp2 = arr1;
System.out.print("通過tmp1取出數組值:");
for(int i = 0;i<tmp1.length;i++)
System.out.print(tmp1[i] + " ");
System.out.print("通過tmp2取出數組值:");
for(int i = 0;i<tmp2.length;i++)
System.out.print(tmp2[i] + " ");
tmp1[2] = 9;
System.out.print("\n\n通過tmp1取出數組值:");
for(int i = 0;i<tmp1.length;i++)
System.out.print(tmp1[i] + " ");
System.out.print("\n過tmp2取出數組值:");
for(int i = 0;i<tmp2.length;i++)
System.out.print(tmp2[i] + " ");
}
}
執行結果:
通過tmp1取出數組值:1 2 3 4 5
通過tmp2取出數組值:1 2 3 4 5
通過tmp1取出數組值:1 2 9 4 5
通過tmp2取出數組值:1 2 9 4 5
上例中,通過tmp1名稱改變索引2的元素值,由於tmp2也引用自同一數組對象,所以tmp2取出索引2的元素值是改變後的值。在例子中,arr1,tmp1與tmp2,所以,如果取出arr1索引2的元素,元素值也會是9.