JAVA虚拟机规范读书笔记--栈,堆,方法区(内存分配)
来源:互联网 发布:网络用语py什么意思 编辑:程序博客网 时间:2024/06/05 10:48
JAVA虚拟机运行时内存分配
- PC寄存器
- JAVA栈
- JAVA堆
- 方法区
- 运行常量池
- 本地方法栈
PC寄存器
每一条java虚拟机线程都有自己的pc寄存器,任意时刻java虚拟机只会执行一个方法的代码,若该方法不是native的pc寄存器保存正在执行的字节码指令地址,如果是native的pc寄存器的值为undefined(未定义)
JAVA 栈
每一条java虚拟机线程都有自己私有的java虚拟机栈,这个栈与虚拟机线程被同时进行创建,用于存储局部变量和一些没有计算好的结果,java虚拟机栈不需要保证内存是连续的。
请求分配内存时超出虚拟机允许的最大容量StackOverflowError
栈在尝试扩展空间没有申请到足够的内存OutOfMemoryError
JAVA 堆
堆提供一个可以供个个线程共享的运行时内存区域(对象,数组分配内存),java虚拟机堆在虚拟机启动时就被创建了,他存储自动内存管理系统(垃圾回收器)所管理的各种对象。
堆内存超过内存管理最大容量OutOfMerryError
方法区
方法区提供一个可以供个个线程共享的运行时内存区域,方法区在虚拟机启动时创建,方法区是堆的逻辑组成部分,但简单的虚拟机实现在这个区域可以不实现垃圾收集和回收。
运行常量池
运行常量池在方法区中分配。他是每一个类或接口在运行时的表达形式
本地方法栈
java虚拟机实现过程中可能用到传统的C栈(C Stack)来支持native方法(用其他语言编写的方法),这个栈就是本地方法栈
阅读全文
1 0
- JAVA虚拟机规范读书笔记--栈,堆,方法区(内存分配)
- Java虚拟机的深入研究(堆内存---栈内存 的分配浅析)
- 深入理解Java虚拟机 -- 读书笔记(4):内存分配策略
- Java堆、栈、内存分配
- java 栈堆内存分配
- Java堆、栈、内存分配
- java中关于堆内存区,栈内存去,静态区(方法区)的分配机制
- Java虚拟机规范读书笔记
- Java内存分配(堆和栈内存)
- Java虚拟机堆的内存分配和回收
- java-内存管理(程序计数器、虚拟机栈、本地方法栈、堆、方法区)和常量池
- java堆内存、栈内存、方法区
- java虚拟机内存分配
- Java虚拟机内存分配
- java 虚拟机 内存分配
- Java虚拟机内存分配
- java 虚拟机内存分配
- Java虚拟机内存分配
- Java还要再学一遍基础(一)认识java
- 自定义view之构造方法
- 自己实现strcpy函数
- Ubuntu清理
- Leetcode——69. Sqrt(x)
- JAVA虚拟机规范读书笔记--栈,堆,方法区(内存分配)
- PAT 甲级 1008. Elevator
- 模板方法模式
- Java网络编程入门
- 设计模式
- 进程调度之linux 用户态抢占和内核态抢占
- 五月的仓颉大神写的 三年java程序员面试感悟 值得分享给大家
- 4399小游戏 十滴水 求解器(输出路径的bfs)
- XML解析之使用DOM分析操作XML文档