博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java内存分配
阅读量:2493 次
发布时间:2019-05-11

本文共 447 字,大约阅读时间需要 1 分钟。

对象优先在Eden分配

大多数情况,对象在新生代Eden区中分配。当Eden去没有足够内存空间分配时,进行Minor GC。

大对象直接进入老年代

大对象是指连续占用内存空间的对象,比如很长的字符串以及数组。

长期存活的对象将进入老年代

用一个年龄计数器,每次minor GC后存活的对象移动到Survior空间,并且计数器加1.年龄计数器大于一定值(默认是15),将晋升到老年代.可以用-XX:MaxTenuringThreshold设置阀值.

动态对象年龄判定

如果在Survivor空间中的相同年龄所有对象大小的总和大于Survivor空间的一半,年龄大于或等于该年龄的对象就可以直接进入老年代,无须等到MaxTenuringThreshold中要求的年龄。

空间分配担保

在Minor GC前,虚拟机会检查老年代的最大连续空间是否大小新生代所有对象总空间。如果这个成立,Minor GC是安全的;否则会根据HandlePromotionFailure设置,担保是否进行Minor GC。

转载地址:http://xthrb.baihongyu.com/

你可能感兴趣的文章
PHP 实现笛卡尔积
查看>>
Laravel中的$loop
查看>>
CentOS7 重置root密码
查看>>
Centos安装Python3
查看>>
PHP批量插入
查看>>
laravel连接sql server 2008
查看>>
Laravel 操作redis的各种数据类型
查看>>
Laravel框架学习笔记之任务调度(定时任务)
查看>>
laravel 定时任务秒级执行
查看>>
浅析 Laravel 官方文档推荐的 Nginx 配置
查看>>
Swagger在Laravel项目中的使用
查看>>
Laravel 的生命周期
查看>>
CentOS Docker 安装
查看>>
Nginx
查看>>
Navicat远程连接云主机数据库
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
Mysql出现Table 'performance_schema.session_status' doesn't exist
查看>>
MySQL innert join、left join、right join等理解
查看>>
vivado模块封装ip/edf
查看>>
sdc时序约束
查看>>