引用类型数组的数组元素仍然是引用类型的,因此数组元素里存储的还是引用,它指向另一块内存。
这块内存里存储了该引用变量所引用的对象(包括数组和Java对象)
注意下面这种情况:
package _07堆;
import org.junit.Test;
class Node {
public int data;
public Node(int data){
this.data = data;
}
@Override
public String toString() {
return data+"";
}
}
public class 测试数组里面存放对象的内存分配 {
@Test
public void test(){
Node[] array = new Node[5];
Node n1 = new Node(1);
Node n2 = new Node(2);
array[0] = n1;
array[1] = n2;
Node temp = array[1];
array[1] = array[0];
System.out.println(temp);
}
}
此时内存图解是这样的