JVM内存包含main memory和heap memory。
main memory存放对象变量的值,每个线程有自己的工作内存。变量的值对所有线程访问是共享的。 main不是由jvm管理的。
说到main memory,要提到volatile。在变量前面用volatile修饰的话,线程不会把该变量copy到工作内存操作,而是直接访问主存的变量。
heap memory结构图示如下:
permanent space:存放加载到jvm里面的class 对象。我们常配置的jvm 其空间大小不包含在heap memory里面。主程序不会在运行期间不会对permanent space 进行gc. permSize配置100,heap配置1000,,那么jvm大小至少有1100m
old space:存放生命周期比较长的对象
new Generation包括:
1. eden:存放刚被实例化的对象
2. from space和to space存放没被garbege collection回收的对象,总成叫 survivor spaces
面来看一下类被实例化的过程
1. 类实例化对象时候,jvm在eden为其分配空间
2. 当eden空间不够的时候,进行下面的流程
3. 清楚eden不活动的对象,如果空间还不够 存放新对象,则将eden的对象移到survivor spaces里面,如果
4. 清楚eden的垃圾对象
5. 将eden存活的垃圾对象copy到survivor spaces(from space 或to space)
6. 如果survivor spaces满了,则将survior的live对象copy到old space. old space 采用mark-compact算法
Refer to: http://hi.baidu.com/xuwanbest/blog/item/0587d82f2c44a73d1e30892e.html
- 大小: 11.6 KB
- 大小: 13.2 KB
分享到:
相关推荐
jvm内存模型以及垃圾回收机制.pptx
jvm内存模型以及垃圾回收机制详述
前段时间做JVM调优网上搜集的一些资料,里面有图形化讲解JVM内存使用和各个参数详细介绍等
jvm内存模型,jvm脑图,jvm调优,jvm垃圾回收算法,jvm垃圾回收器,逃逸算法等总结。
第二节:JVM内存模型 1.1 概念 1.2 JVM内存模型 1.3 Heap堆内存模型 第三节:定位垃圾对象的依据 1.1 引用计数法 1.2 可达性算法 第四节:垃圾回收算法 1.1标记清除算法 1.2复制算法 1.3 标记整理(标记压缩)...
通俗的来讲,jvm主要分为5个部分 程序计数器、虚拟机枝、本地方法枝、 Java 堆、 方法区, 引用大佬总结的概括程序计数器用于存放下一条运行的指令,虚拟机栈和本地方法栈用于存放函数调用堆栈信息, Java 堆用于...
JVM的内存模型,垃圾回收,GC
JVM内存模型以及垃圾回收,初级人员必看
jvm相关代码仓库,包括类加载机制,字节码执行机制,JVM内存模型,GC垃圾回收,JV-jvm_practice
很好的学习资料,很详细的讲述了JVM性能调优,JVM内存模型,垃圾回收原理算法等等,很适合JAVA程序员阅读。
很久之前就一直在学习JVM,但是一直也没有好好的总结,最近终于有了空闲,将之前学习的内容整理成了一个PPT。 也希望大神们可以批评指正。... Java内存模型 内存分配策略 分代垃圾收集 虚拟机工具 垃圾收集器
JVM内存模型架构图,核心部分包括: GC主要在新生区(伊甸园区)、老年区 新生区(伊甸园区(对象都是在这个区new出来的)、幸存区to、幸存区from:幸存区位置会互相交换,谁空谁是to) 老年区 永久区:存储的是...
从JVM内存模型、常用JVM参数、垃圾回收算法和垃圾回收器等几个角度学习JVM
总共110讲,非常适合jvm初学者,希望对大家有所帮助,奋斗吧少年
非常好的HM JVM课件,尤其是字节码的部门,非常良心,搭配HM JVM视频使用更加哦。博客地址https://blog.csdn.net/hancoder/article/details/105210258
Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象...本文主要对java垃圾回收机制以及jvm参数等方面做个综述,也算是自己做开发这几年对这方面的一个总结。
在 HotSpot 虚拟机中,分为 3 块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)对象头(Header):包含两部分,第一部分用于存储对象自身的运行时数据,如哈希码、GC 分代年龄、锁状态标志、线程...
* 在垃圾回收章节,不仅会介绍垃圾回收算法、分代垃圾回收机制,还会重点介绍 G1 垃圾回收器,辨析 Full GC 发生条件,jdk8以来对垃圾回收的优化,以及垃圾回收的调优法则。 * 在字节码与类加载技术章节,会从一个 ...
文件总结了JVM的体系结构:四大块,类装载子系统(class loader subsystem),执行引擎子系统(Executionengine子系统),垃圾回收系统(gc),运行时数据区(JVM内存)。
自己在学习和面试过程中总结的一些常见面试题... 包含了java内存模型 , java8以后内存变化. 垃圾回收算法, 常见的垃圾回收器 , G1垃圾回收器的优化 堆外内存如何使用等. 希望和大家共同进步 . 祝拿到满意的offer .