首先我们写下如下Java语句;
double[] e = new double[3],f;
e[2] = 100;
f=e;
给出如下的示意图:
然后我们来逐句分析每句话:
第一句:
首先定义了一个e的double数组(在栈里面开辟空间e)
然后新建对象在堆里开辟一个存储区三个连续单元(三个连续单元默认值为0.0,该单元地址假设为0x0098)
通过赋值运算,实体编号赋给变量e
然后栈里的变量e指向堆的实体
第二句:
使堆里实体里第二个单元改写为100;
第三句:
在栈里新建一个新的空间f;
因为f=e,e的地址赋给f;
当堆实体不再被引用,则被称为垃圾
当该语句不再使用,栈和堆脱离联系,堆清空