虚拟机运行时数据区划分
假设①新建Company类,然后继续②创建Company实例,即Company company = new Company();
下面解释①②两部动作所涉及到的虚拟机运行时内存区域划分:
1,方法区:存放类信息,常量,静态变量(①中新建类(类信息)存放在方法去中);
2,虚拟机栈:创建栈帧,存放局部变量信息表,方法出口等信息(②中Company company即创建了一个reference,则昂在了局部变量信息表中);
3,堆:存放对象实例,(②中new Company()所需内存空间则在堆提供)。
4,程序计数器:生命周期与线程生命周期相同,简单来说,则用于标记线程执行的位置。
5,本地方法栈:与虚拟机栈类似,只不过本地方法栈服务的是Native方法(本地方法)。