new ArrayList() 创建了个对象在堆里,假设JVM给他分配的地址是1234ab;
ArrayList a1 声明了一个引用型变量,在这里是个局部变量,在栈里。
然后就是这个局部变量了,局部变量的信息都保存在class文件的localVariableTable的这么个属性中,localVariableTable属性包含了localVariableInfo项, localVariableInfo包含一个属性(descriptor_index),这个属性值指向包含了这个局部变量信息(比如包含这个变量的类的权限定名,变量名称,类型等)的Constant_UTF8_info条目;localVariableInfo还包含另外一个属性(index),这个index指向的位置就是当前方法的栈帧中保存这个局部变量的值的位置。值就是对象的地址1234ab
关于变量,对象,引用的存放。
最新推荐文章于 2021-06-22 20:19:34 发布