本来想写Java堆和栈的,后来发现基本上是以JVM中为主,就改成JVM堆和栈了,具体在Java中是否本身存在堆栈机制等待学习和了解。
首先是JVM的内存划分(参考文章1),文章说Java程序在运行时都要开辟空间,任何软件在运行时都要在内存中开辟空间待验证,Java虚拟机运行时也是要开辟空间的。
JVM运行时在内存中开辟一片内存区域,启动时在自己的内存区域中进行更细致的划分待验证,因为虚拟机中每一片内存处理的方式都不同,所以要单独进行管理。
JVM内存的划分,有5片待验证:
1.寄存器;
2.本地方法区;
3.方法区;
4.栈内存;
5.堆内存。
参考文章1
参考文章2
参考文章3