1.Eden区

Eden区位于Java堆的年轻代,是新对象分配内存的地方,由于堆是所有线程共享的,因此在堆上分配内存需要加锁。而Sun JDK为提升效率,会为每个新建的线程在Eden上分配一块独立的空间由该线程独享,这块空间称为TLAB(Thread Local Allocation Buffer)。在TLAB上分配内存不需要加锁,因此JVM在给线程中的对象分配内存时会尽量在TLAB上分配。如果对象过大或TLAB用完,则仍然在堆上进行分配。如果Eden区内存也用完了,则会进行一次Minor GC(young GC)。

2.Survival from to

Survival区与Eden区相同都在Java堆的年轻代。Survival区有两块,一块称为from区,另一块为to区,这两个区是相对的,在发生一次Minor GC后,from区就会和to区互换。在发生Minor GC时,Eden区和Survivalfrom区会把一些仍然存活的对象复制进Survival to区,并清除内存。Survival to区会把一些存活得足够旧的对象移至年老代。

3.年老代

年老代里存放的都是存活时间较久的,大小较大的对象,因此年老代使用标记整理算法。当年老代容量满的时候,会触发一次Major GC(full GC),回收年老代和年轻代中不再被使用的对象资源。

java-堆里面的分区:Eden,survival(from) to,老年代,各自的特点。相关推荐

  1. 深入理解Java虚拟机(四)Eden、Survivor、老年代、GC日志

    1. 年轻代 1.1 Eden区和Survivor区 新生代GC(Minor GC):指发生在新生代的垃圾收集动作,Minor GC非常频繁,新生代采用复制算法,一般回收速度也比较快.因为采用复制算法 ...

  2. 16-内存分配与回收策略-对象优先分配Eden+大对象进老年代

    1.对象优先在Eden分配 大多数情况下, 对象在新生代Eden区中分配. 当Eden区没有足够空间进行分配时, 虚拟机将发起一次Minor GC.HotSpot虚拟机提供了-XX: +PrintGC ...

  3. Java的垃圾回收机制、年轻代与老年代

    目录 1 被判定为垃圾的标准 2 判定对象是否为垃圾的算法 2.1 引用计数法 2.2 可达性分析算法 3 垃圾回收的算法 3.1 标记-清除算法(Mark and Sweep) 3.2 复制算法(C ...

  4. java 堆的使用_Java堆

    Java堆的基本概念 Java 堆是虚拟机所管理的内存中最大的一块,是被所有线程共享的一块内存区域,在虚拟机启动时创建.此内存区域的唯一作用就是存放对象实例,几乎所有的对象实例都是在这里分配的(不绝对 ...

  5. java堆内存_java堆内存详解

    http://www.importnew.com/14630.html java堆的特点 <深入理解java虚拟机>是什么描述java堆的 Java堆(Java Heap)是java虚拟机 ...

  6. java堆是gc管理_JVM内存管理及GC机制

    一.概述 JavaGC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和 ...

  7. 容器java堆内存什么时候回收_JVM内存垃圾回收方法

    概要: why:为什么回收,见what what:垃圾回收哪些内存(不可达对象的确定) when:何时执行GC(安全点.安全区域) how:如何回收(原理--垃圾回收算法.实现--垃圾收集器) 1.垃 ...

  8. Java堆内存是线程共享的!面试官:你确定吗?

    作者 l Hollis 来源 l Hollis(ID:hollischuang) Java作为一种面向对象的,跨平台语言,其对象.内存等一直是比较难的知识点,所以,即使是一个Java的初学者,也一定或 ...

  9. 记录一次大对象导致的Java堆内存溢出问题

    问题描述 前几天早上出现一后台项目无法登陆的情况,排查发现新生代和老年代都占用100%,FullGC次数大概有100多次,最终出现OOM. 重启Tomcat后,至13点,FullGC的次数达到31次. ...

最新文章

  1. 谷歌浏览器打不开设置等页面
  2. ExtJS4.2学习(八)表格限制输入数据的类型
  3. mvc4.0 html.actionlink comfired,未触发MVC 5远程验证
  4. php中$sum,如何在PHP中显示SUM列
  5. SpringBoot集成七牛云-实现文件上传、下载、解决报错、详细案例
  6. 关于如何在github上创建团队开发环境
  7. 写出C语言中5种数据类型的名称及其关键字,求C语言中的32个关键字及其意思?...
  8. 【渝粤题库】陕西师范大学164204 供应链与物流管理 作业
  9. AS3图像抖动效果源码。
  10. idea 控制台程序的打包
  11. Bootstrap CSS编码规范之代码组织规范
  12. s-palindrome
  13. bootstrap-table动态合并相同行和列的方法
  14. ad自动连线_ad如何自动布线
  15. oracle 简版客户端instantclient使用 oledb ODAC组件使用
  16. push declined due to email privacy restrictions (GH007 error code) 解决方法
  17. gwas snp 和_GWAS综述(生信文献阅读俱乐部精选)
  18. 隔年增长的题_2019行测备考:数量关系_浅谈隔年增长率的解法
  19. 关于Spark的部署yarn模式
  20. SAP ALE学习手册

热门文章

  1. c#使用Flash控件AxShockwaveFlash
  2. 【论文阅读】RoadMap: A Light-Weight Semantic Map for Visual Localization towards Autonomous Driving
  3. 用友优普孙永军:制造业的三座“大山”
  4. Win 32API速查
  5. 利用SimpleTagSupport创建定制标签
  6. Autojs获取GPS定位信息
  7. 使用javascript实现植物大战僵尸部分功能
  8. (私人收藏)植物大战僵尸游戏角色素材集成包(用于练习)
  9. AUC的置信区间和两个AUC的差异性比较
  10. 使用webrtc-streamer查看实时监控