一篇关于gc的文章

http://www.cnblogs.com/hnrainll/archive/2013/11/06/3410042.html

自己的笔记:

JVM是用c语言写的。一般说的JVM是HotSpot。

GC是垃圾回收的意思。

Java的GC对不同存活时长的对象才用不同的回收策略。

存活时间短的对象使用新生代存储,存活时间长的对象使用年老代存储。

一般情况下,一个对象刚创建的时候被存放在年轻代,在年轻代经过几次gc后仍然存活,则进入年老代。特殊情况下:如果一个对象很大,也可以直接进入年老代。有的建议说需要避免创建大的对象。年老代的空间很大,当一个大的对象在老年代gc的时候,会引发整个年老代的gc。对于年老代引用年轻代对象的情况,年老代中会维护一个大小为512byte的card table。年轻代gc的时候可以查询这里,而不用查询全部年老代。

年轻代的gc策略是:停止复制清理法。年轻代具体分为伊甸区、存活区0,存活区1;gc时候将仍然存活的对象放入一个存活区中,清空另一个存活区和伊甸园区。如果某个对象经过了n次gc依然存活,或者存活的对象超过了存活区的容量,就会发生从年轻代到年老代的复制。 停止复制清理法需要在回收前停止其他所有线程的执行,这是新生代收集器优化的重点(垃圾收集器是gc的具体实现)。

年老代的gc策略是:标记整理法。年老代的容量很大,使用停止复制法的话,效率会比较低。标记整理法,是先标记存活的对象,然后把这些对象在向一段移动,保证内存的连续。

转载于:https://www.cnblogs.com/afraidToForget/p/10120380.html

Java 年轻代、年老代、GC相关推荐

  1. java 年轻代算法_java内存模型 年轻代/年老代 持久区,jvm中的年轻代 老年代 持久代 gc...

    虚拟机中的共划分为三个代:年轻代(Young Generation).老年代(Old Generation)和持久代(Permanent Generation).其中持久代主要存放的是Java类的类信 ...

  2. java内存模型 年轻代/年老代 持久区

    jvm中的年轻代 老年代 持久代 gc 虚拟机中的共划分为三个代:年轻代(Young Generation).老年代(Old Generation)和持久代(Permanent Generation) ...

  3. java年轻代_Java分代垃圾回收机制:年轻代/年老代/持久代(转)

    虚拟机中的共划分为三个代:年轻代(Young Generation).年老点(Old Generation)和持久代(Permanent Generation).其中持久代主要存放的是Java类的类信 ...

  4. 强引用置为null,会不会被回收及内存分配及年轻代年老代算法回收

    会,GC执行时,就被回收掉,前提是没有被引用的对象 https://blog.csdn.net/qq_33048603/article/details/52727991 一定要了解垃圾回收原理 首先我 ...

  5. java heap_javaHeap的组成及GC监控

    javaHeap 分为三个段:YongGeneration.OldGeneration.PermanentGeneration Young(年轻代) 年 轻代分三个区.一个Eden区,两个Surviv ...

  6. java年轻代和年老代默认比值_JAVA中的GC以及年轻代,年老代,持久代的认识

    java中我们常常谈论到垃圾回收机制,那么,垃圾回收机制又是什么呢?说到JVM调优,似乎很高大上,那么JVM调的都是那些数据呢?伊甸园区,幸存区,年轻代,年老代,持久代,每个词都熟悉又陌生,似乎很深奥 ...

  7. java年轻代minor gc_jvm之年轻代(新生代)、老年代、永久代以及GC原理详解、GC优化...

    关于JVM,也许你听过这些术语:年轻代(新生代).老年代.永久代.minor gc(young gc).major gc.full gc 不要急,先上图,这是jvm 堆内存结构图 仔细的你发现了 图中 ...

  8. Java 年轻代GC

    JVM的年轻代 为什么会有年轻代 我们先来想想,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能.你先想想,如果没有分代,那我们所有的对象都在一块, ...

  9. java年轻代频繁gc_JVM 年轻代 老年代 持久代 gc

    虚拟机中的共划分为三个代:年轻代(Young Generation).老年代(Old Generation)和持久代(Permanent Generation).其中持久代主要存放的是Java类的类信 ...

最新文章

  1. 魔兽怀旧服怎么找不到服务器,魔兽世界怀旧服无法连接服务器怎么解决 服务器连接不上解决方法...
  2. Discuz X2论坛数据库MyISAM转InnoDB的脚本
  3. 全面讲解Python字典;--什么是字典?字典的常用方法;创建空字典并赋值,增删改查字典中的元素
  4. PLSQL_day01
  5. 2015蓝桥杯省赛---java---C---1(隔行变色)
  6. 可重入锁 不可重入锁_什么是可重入锁?
  7. 读人是基础,看人是关键,做人最重要
  8. ORACLE数据库异步IO介绍
  9. Phantomjs 生成多页PDF
  10. 【设计模式】简单工厂模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )
  11. DEDECMS验证码不正确及其不显示问题
  12. input输入框提示语
  13. ADC转换速率kSPS定义
  14. 计算机基础知识应用电子邮件,计算机基础知识及应用普及
  15. BPM业务流程管理的前世今生
  16. X-Plane飞行模拟器购买安装
  17. PHP 7.1 新特性一览 1
  18. 多元线性回归(OLS+稳健误)python代码实现
  19. 驾考宝典2014科目一模拟考试 v5.1.6 免费版
  20. 哪里的草图大师sketchup模型可以渲染的呢?caotu66模型展示

热门文章

  1. 快速让网站内容可以复制
  2. android studio(自带SDK)安装教程
  3. php环境扩展安装流程
  4. java tcp门禁_门禁控制器的TCP/IP协议功能
  5. Fairplay之 generating FairPlay content key request on iOS after 14.6
  6. python去除字符串中空格和特殊符号的方法
  7. Android横向滚动卡片,Android仿探探卡片式滑动效果实现
  8. 励销云全流程智能销售解决方案,助力B2B企业高效增长
  9. 通过命令运行jar包(指定外部依赖jar包)
  10. 数据分析 --- 收集数据的原则