我现在正在学习JVM内存model.I有一个问题:对象引用变量(a中)存储在哪里?
package com; public class TestAllocation { private static final int _1MB = 1204*1024; public static void main(String[] args){ testAllocation(); } public static void testAllocation(){ byte[] allocation1,allocation2,allocation3,allocation4; allocation1 = new byte[2 * _1MB]; allocation2 = new byte[2 * _1MB]; allocation3 = new byte[2 * _1MB]; allocation4 = new byte[2 * _1MB]; } }
那么,哪里的参考allocation1,allocation2存储?由于testAllocation()是一个静态的方法,所以,这个函数里面的变量存储在方法区域?但是每次调用一个函数时,都是栈 push/pop操作。于是,allocation1,allocation is存储在
堆栈帧testAllocation()?
但有一点很清楚,就是数组值,存储在java堆,对不对?