jvm内存模型
来源:互联网 发布:apt-get insall yum 编辑:程序博客网 时间:2024/06/16 21:16
根据运行时数据的存储结构,jvm将内存划分为6个部分:
1.PC寄存器:又称程序计数器,用于记录线程的运行状态和保存当前线程执行指令的内存地址,由各个线程独享。
2.本地方法栈:又叫C栈,用于存储native关键字修饰的方法,由各个线程独享的。native方法底层都是通过C语言进行实现,
3.内存栈:也称java栈,用于保存方法中的内存变量、返回值等信息,由线程独享。jvm在创建一个线程时会分配一个java栈空间,这个栈又包含多个栈帧,每个栈帧对应线程运行时的方法。当调用方法需要的内存容量高于内存栈最大容量时,会产生栈溢出现象。
4.内存堆:用于保存new出来的对象数据,这个数据包括了其父对象的非静态数据;堆中的对象为线程共同享有,在多线程进行读写操作时,需要注意同步问题。当new出来的对象过多或者过大超过堆得最大容量时,会出现堆溢出的问题。堆可以划分新生代和老年代两部分,刚创建的对象一般放在新生代,存活时间长的对象会转移到老年代。
5.方法区:用于保存类 的结构信息,包括类的构造函数,属性,方法体,方法数据;这个区域由多个线程共同享有。另外,下面讲到的常量池也属于方法区。
6.运行常量池:用于存储字面量,保存数字、字符串和字符。
阅读全文
1 0
- [jvm]JVM内存模型
- 【理解JVM】JVM内存模型
- JVM初探 -JVM内存模型
- JVM初窥:JVM内存模型
- 理解 JVM:JVM 内存模型
- JVM内存模型
- JVM内存模型基础知识
- 图解JVM内存模型
- JVM内存模型
- 一 JVM内存模型
- JVM的内存模型
- 图解JVM内存模型
- JVM内存模型
- 图解JVM内存模型
- 【转】jvm 内存模型
- JVM 内存模型
- JVM内存模型
- JVM内存模型
- 实验6 图的遍历
- (四) java并发编程--线程安全和资源共享
- 欢迎使用CSDN-markdown编辑器
- OpenStack虚拟机创建流程
- springMVC解决跨域jsonp乱码问题的三种方法
- jvm内存模型
- caffe python接口 测试分类:
- 用一个例子看const与指针、引用、多级指针结合的区别
- 机器学习笔记(三) 线性代数复习
- git版本冲突及解决方案
- MMC 卡驱动分析
- Java基础知识梳理--泛型
- Python10--面向对象
- 数组