JVM基本结构
来源:互联网 发布:数据库如何设置默认值 编辑:程序博客网 时间:2024/05/29 18:45
当JAVA虚拟机运行一个程序时,它需要内存来存储已装载的class文件中得到的信息等。Java虚拟机把这些东西都组织到几个“运行时数据区”中,以便于管理。
JVM内存模型结构图:
Java栈:栈由一系列帧组成,帧保存一个方法的局部变量,操作数栈、常量池指针,每次方法调用创建一个帧,并压栈。
java堆:java堆和程序开发密切相关,保存对象,所有线程共享java堆,对分代GC来说,堆也是分代的。分为新生代和老年代。
新生代:存放刚刚创建的对象
老年代:存放幸存区未被回收的对象。
方法区:保存装载的类的信息,类型常量池、字段、方法信息、方法字节码。通常和用就去关联在一起。
PC寄存器:每个线程拥有一个pc寄存器,在线程创建时创建,指向下一条指令的地址,执行本地方法时,pc的值为undefined
栈、堆、方法区交互:
对比:堆上分配和栈上分配
1、小对象,在没有逃逸的情况下可以直接分配在栈上
2、直接分配在栈上,可以自动回收,减轻GC压力,分配在堆上,每次需要清理空间
3、大对象或者逃逸对象无法在栈上分配
1 0
- JVM系列:jvm基本结构
- JVM之JVM基本结构
- JVM基本结构
- jvm基本结构
- JVM基本结构
- JVM基本结构
- jvm 基本结构 一
- JVM基本结构
- jvm的基本结构
- Jvm基本结构
- jvm的基本结构
- jvm-基本结构
- jvm的基本结构
- JVM的基本结构
- JVM基本结构
- java之jvm(jvm基本结构)
- JVM(一) JVM的基本结构
- 深入理解JVM--JVM基本结构
- Unity进阶 - 动画系统 - 给人物角色制作动画
- 安卓开发中的双日期选择控件(可隐藏日,只显示年月)
- Linux下修改系统时区
- 《Node.js开发指南》实例中遇到的问题
- socket的close和shutdown的区别
- JVM基本结构
- 使用TreeSet去除字符串数组里的重复元素
- IONIC 中使用拦截功能来实现API接口访问的数据缓存
- 智力题
- Unity3D开发性能优化
- Android 安卓系统时间获取
- 用堆实现优先队列
- Maven 手动安装 JAR 包
- 创建excel:HSSFWorkbook(poi)的用法