(1)//定义、并初始化一个Object数组
Object[] objArr = new Object[3];
=>内存中有了:objArr[0],objArr[1],objArr[2];
(2)//让objArr所引用数组的第二个元素再次指向一个长度为2的Object[]数组
objArr[1] = new Object[2];
=>内存中的objArr[1]指向了一个Object对象数组
objArr[0]
objArr[1]<---objArr[1][0],objArr[1][1]
objArr[2]
(3)//将objArr[1]的值赋给objArr2,即让objArr2和objArr[1]指向同一个数组对象
Object[] objArr2 = (Object[])objArr[1];
=>
objArr[1](objArr2)<--|objArr[1][0],objArr[1][1]
objArr2<----------|
这时的objArr[1][0],objArr[1][1]也就是objArr2[0],objArr2[1]
(4)//让objArr2所引用数组的第二个元素再次指向一个长度为3的Object[]数组
objArr2[1] = new Object[3];
=>objArr2[1]<-------------objArr2[1][0],objArr2[1][1],objArr2[1][2],
(5)//将objArr2[1]的值赋给objArr3,即让objArr3和objArr2[1]指向同一个数组对象
Object[] objArr3 = (Object[])objArr2[1];
=>objArr2[1]<-------------|objArr2[1][0],objArr2[1][1],objArr2[1][2],
objArr3<--------------|
这时的objArr2[1][0],objArr2[1][1],objArr2[1][2]也就是objArr3[0],objArr3[1],objArr3[2],
(6)//让objArr2所引用数组的第二个元素再次指向一个长度为3的int[]数组
objArr2[1] = new int[3];
=>objArr2[1]<-------------|整数1,整数2,整数3;
objArr3<--------------|objArr3[0],objArr3[1],objArr3[2](原来的objArr2[1][0],objArr2[1][1],objArr2[1][2],)
这时的objArr2[1]引用的值不在等于objArr3;
objArr2[1][0],objArr2[1][1],objArr2[1][2](三个int型整数)和objArr3[0],objArr3[1],objArr3[2](三个Object对象)不再相等。
(7)//将objArr3[1]的值赋给iArr,即让iArr和objArr3[1]指向同一个数组对象
int[] iArr = (int[])objArr3[1];
=>objArr3[1]<------------|整数1,整数2......
objArr2[1] = new Object[3];
|