JVM 划重点 之一虚拟机内存模型
其他
2020-04-19 18:05:02
阅读次数: 0
hostpot 虚拟机 运行时数据区内存模型
- 白色部分为 jvm运行时所有线程的共享内存
- 蓝色部分为 线程独享内存
一 共享内存
1 方法区特性
- 用于存储虚拟机加载的 类信息, 常量, 静态变量 即时编译器编译后的代码等
- jvm规范描述 其为堆的一个逻辑部分, 但又有所区分。别名 No-Heap 非堆
- GC 很少对这部分内存进行回收 因为收效甚微
- GC 的主要回收目标是 这部分的运行时常量池(String.intern 等方法会会产生 运行时常量) 以及 类型的写在
2 堆的特性
- 存放对象实例,几乎所有对象内存都在此处分配
(随着逃逸分析 标量替换 栈上分配 等技术的发展,使得并非所有对象实例都会在堆上分配)
- GC 的主要回收目标 为了方便收寄 堆内存还分为了 新生代和老年代
- 堆得内存可以配置为 可扩展的 通过 -xmx -xms 来控制
二 线程私有内存区域
1 程序计数器
2 虚拟机栈
- 生命周期与线程相同
- 存储 局部变量表等信息
- 局部变量表 : 存放了 各种编译时可知的数据类型,和对象引用
3 本地方法栈
三 其他内存区域
- 直接内存:使用 本地方法 native , 直接分配 堆外内存
发布了17 篇原创文章 ·
获赞 24 ·
访问量 28万+
转载自blog.csdn.net/qq_22956867/article/details/78041877