思考:
1.
int[] x = new int [3];
int[] y = x;
y[1] = 89;
x = null;
问:堆内存中有无垃圾?
因为两个引用同一块地址,所以当y[1] 被赋值为89后,x[1] = 89
故堆中的数组一直有引用指向它,所以堆中没有被JVM视为垃圾的实体,所以堆内存中没有垃圾
2.
int a= 5;
int b = a;
b = 8;
问:s.o.p(a) 的结果是多少?
故结果为:5
3.
int[] x = new int[3];
int[] y = new int[3];
y[1] = 89;
问:s.o.p(x[1])结果是多少?
由图可知,每new一次,就在堆内存中开辟一块新地址,故y[1]的改变不会影响x[1]的值,此时x[1]的值为其默认值0,故x[1]的值为0,结果为0