Memory management 对象引用变量(a内)存储在哪里?

Memory management 对象引用变量(a内)存储在哪里?,memory-management,jvm,Memory Management,Jvm,我现在正在学习JVM内存模型。我有一个问题: package-com; 公共类测试分配{ 专用静态最终整数_1MB=1204*1024; 公共静态void main(字符串[]args){ testAllocation(); } 公共静态无效testAllocation(){ 字节[]分配1、分配2、分配3、分配4; allocation1=新字节[2*_1MB]; allocation2=新字节[2*_1MB]; allocation3=新字节[2*_1MB]; allocation4=新字节

我现在正在学习JVM内存模型。我有一个问题:

package-com;
公共类测试分配{
专用静态最终整数_1MB=1204*1024;
公共静态void main(字符串[]args){
testAllocation();
}
公共静态无效testAllocation(){
字节[]分配1、分配2、分配3、分配4;
allocation1=新字节[2*_1MB];
allocation2=新字节[2*_1MB];
allocation3=新字节[2*_1MB];
allocation4=新字节[2*_1MB];
}
}
那么,引用allocation1、allocation2存储在哪里?由于testAllocation()是一个静态方法,因此,此函数中的变量存储在方法区域?但每次调用函数时,它都是堆栈推送/弹出操作。因此,分配1,分配存储在
testAllocation()的堆栈框架


但有一点是清楚的,即数组值存储在java堆中,对吗?

使方法保持静态不会改变其变量存储的位置

testAllocation()
的末尾,堆栈上将有四个引用(allocation1、allocation2、allocation3和allocation4)

这四个引用将引用存储在堆上的四字节数组