jvm

背景

       jvm到底怎么回事,本以为很简单,结果网上一搜,还真是有点迷糊了。这么多年也没大注意,看几次也是忘几次。总结下,其实主要区分点在于永久代不属于heap,平时说的栈又有细分。了解这些有啥用呢,我觉得在于调整jvm参数有用,jvm参数要根据使用一段时间后,通过查看可以知道该分配多少给堆,多少给栈,给多了也用不了。简单一个方面吧。

知识点

很多人将JVM区域总体分两类,heap区和非heap区。 
heap区又分为: 
- Eden Space(伊甸园)、 
- Survivor Space(幸存者区)、 
- Old Gen(老年代)。

非heap区又分: 
- Code Cache(代码缓存区); 
- Perm Gen(永久代); 
- Jvm Stack(java虚拟机栈); 
- Local Method Statck(本地方法栈);

正确的说法是

根据 << Java虚拟机规范 >>中的规定,运行时数据区通常包括这几个部分:程序计数器(Program Counter Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method Area)、堆(Heap)。

原文地址:https://www.cnblogs.com/sddychj/p/9524315.html