java-堆里面的分区:Eden,survival(from) to,老年代,各自的特点。
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,老年代,各自的特点。相关推荐
- 深入理解Java虚拟机(四)Eden、Survivor、老年代、GC日志
1. 年轻代 1.1 Eden区和Survivor区 新生代GC(Minor GC):指发生在新生代的垃圾收集动作,Minor GC非常频繁,新生代采用复制算法,一般回收速度也比较快.因为采用复制算法 ...
- 16-内存分配与回收策略-对象优先分配Eden+大对象进老年代
1.对象优先在Eden分配 大多数情况下, 对象在新生代Eden区中分配. 当Eden区没有足够空间进行分配时, 虚拟机将发起一次Minor GC.HotSpot虚拟机提供了-XX: +PrintGC ...
- Java的垃圾回收机制、年轻代与老年代
目录 1 被判定为垃圾的标准 2 判定对象是否为垃圾的算法 2.1 引用计数法 2.2 可达性分析算法 3 垃圾回收的算法 3.1 标记-清除算法(Mark and Sweep) 3.2 复制算法(C ...
- java 堆的使用_Java堆
Java堆的基本概念 Java 堆是虚拟机所管理的内存中最大的一块,是被所有线程共享的一块内存区域,在虚拟机启动时创建.此内存区域的唯一作用就是存放对象实例,几乎所有的对象实例都是在这里分配的(不绝对 ...
- java堆内存_java堆内存详解
http://www.importnew.com/14630.html java堆的特点 <深入理解java虚拟机>是什么描述java堆的 Java堆(Java Heap)是java虚拟机 ...
- java堆是gc管理_JVM内存管理及GC机制
一.概述 JavaGC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和 ...
- 容器java堆内存什么时候回收_JVM内存垃圾回收方法
概要: why:为什么回收,见what what:垃圾回收哪些内存(不可达对象的确定) when:何时执行GC(安全点.安全区域) how:如何回收(原理--垃圾回收算法.实现--垃圾收集器) 1.垃 ...
- Java堆内存是线程共享的!面试官:你确定吗?
作者 l Hollis 来源 l Hollis(ID:hollischuang) Java作为一种面向对象的,跨平台语言,其对象.内存等一直是比较难的知识点,所以,即使是一个Java的初学者,也一定或 ...
- 记录一次大对象导致的Java堆内存溢出问题
问题描述 前几天早上出现一后台项目无法登陆的情况,排查发现新生代和老年代都占用100%,FullGC次数大概有100多次,最终出现OOM. 重启Tomcat后,至13点,FullGC的次数达到31次. ...
最新文章
- 谷歌浏览器打不开设置等页面
- ExtJS4.2学习(八)表格限制输入数据的类型
- mvc4.0 html.actionlink comfired,未触发MVC 5远程验证
- php中$sum,如何在PHP中显示SUM列
- SpringBoot集成七牛云-实现文件上传、下载、解决报错、详细案例
- 关于如何在github上创建团队开发环境
- 写出C语言中5种数据类型的名称及其关键字,求C语言中的32个关键字及其意思?...
- 【渝粤题库】陕西师范大学164204 供应链与物流管理 作业
- AS3图像抖动效果源码。
- idea 控制台程序的打包
- Bootstrap CSS编码规范之代码组织规范
- s-palindrome
- bootstrap-table动态合并相同行和列的方法
- ad自动连线_ad如何自动布线
- oracle 简版客户端instantclient使用 oledb ODAC组件使用
- push declined due to email privacy restrictions (GH007 error code) 解决方法
- gwas snp 和_GWAS综述(生信文献阅读俱乐部精选)
- 隔年增长的题_2019行测备考:数量关系_浅谈隔年增长率的解法
- 关于Spark的部署yarn模式
- SAP ALE学习手册
热门文章
- c#使用Flash控件AxShockwaveFlash
- 【论文阅读】RoadMap: A Light-Weight Semantic Map for Visual Localization towards Autonomous Driving
- 用友优普孙永军:制造业的三座“大山”
- Win 32API速查
- 利用SimpleTagSupport创建定制标签
- Autojs获取GPS定位信息
- 使用javascript实现植物大战僵尸部分功能
- (私人收藏)植物大战僵尸游戏角色素材集成包(用于练习)
- AUC的置信区间和两个AUC的差异性比较
- 使用webrtc-streamer查看实时监控