
一。程序计数器

二。虚拟机栈
1.栈帧



2.局部变量表

3
常见递归,可能导致栈溢出,如果说给虚拟机栈限定一个大小,然后方法一直递归,就会导致StackOverFlowError;
如果给虚拟机栈设置大小非常大,甚至超出了机器本身大小,然后方法递归,很明显会导致内存不够,OutOfMemoryError

三。本地方法栈

四。堆


五。方法区
- 存储虚拟机加载的类信息(类的版本、字段、方法、接口),常量,静态变量,即时编译器编译后的代码等数据。
- 方法区和永久代

- 垃圾回收和方法区

六。运行时常量池




七。直接内存

本文深入探讨了Java虚拟机(JVM)的内存区域划分,包括程序计数器、虚拟机栈、本地方法栈、堆、方法区、运行时常量池及直接内存。详细解释了每部分的功能与作用,如方法区存储类信息、常量和即时编译代码等,以及可能出现的错误,如StackOverFlowError和OutOfMemoryError。
1295

被折叠的 条评论
为什么被折叠?



