文档章节

深入理解Java虚拟机(2)

w
 warlockssss
发布于 2017/03/16 17:33
字数 419
阅读 13
收藏 1
JVM

1、GC过程

2、对象已死判断算法

  

3、对象的引用:

 

4、垃圾收集算法

补充堆中区域划分

5、垃圾收集器

Parallel Scavenge:吞吐量优先收集器,与ParNew区别在于多了自适应调节策略

CMS:以获取最短回收停顿时间为目标的收集器,是基于标记-清除算法实现的收集器。

 

补充两个概念:

并行(Parallel):指多个垃圾收集线程工作、但此时用户线程仍然处于等待状态。

并发(ConCurrent):指用户线程与垃圾收集线程同时执行。

 

6、内存分配过程

一般过程:

1、TLAB((Thread Local Allocation Buffer))

2、优先堆新生代eden区

3、大对象进入堆老年代

4、新生代GC(Minor GC)发生,存活对象则优先新生代Survivor区,若存活对象大于Survivor区,则通过担保机制进入老年代。

 

1)默认新生代Eden、Survivor比例是多少?

-8:1,整个新生代包括Eden区和2个Survivor区,也就是如果新生代共10M,则Eden分配8M,2个Survivor各为1M。

-XX:SurvivorRatio=8设置比例值。

 

2)新生代GC和老年代GC的有啥不一样?

-新生代GC发生频繁,速度快

-新生代GC采用复制算法,老年代GC采用标记整理算法

 

3)新生代Survivor区的对象如何进入老年代?

-Survivor存活年龄(新生代GC一次,年龄+1)大于MaxTenuringThreshold值。

-相同年龄的对象之和大于Survivor大小的一半

© 著作权归作者所有

w
粉丝 14
博文 73
码字总数 23115
作品 0
宝山
私信 提问
JVM系列开篇:为什么要学虚拟机?

跟许多人一样,我一开始接触 Java 虚拟机只是因为面试需要用到,所以硬着头皮看看。所以很多人对于为什么要学虚拟机这个问题,他们的答案都是:因为面试。但我经过了几年的学习和实战,我发现...

陈树义
2018/11/06
0
0
面试中关于Java虚拟机(jvm)的问题看这篇就够了

最近看书的过程中整理了一些面试题,面试题以及答案都在我的文章中有所提到,希望你能在以问题为导向的过程中掌握虚拟机的核心知识。面试毕竟是面试,核心知识我们还是要掌握的,加油~~~ 下面...

snailclimb
2018/05/12
0
0
读《深入理解Java虚拟机》- 笔记08

《深入理解Java虚拟机:JVM高级特性与最佳实践》第2版 第10章 早期(编译期)优化 59. 语法糖 在计算机语言中添加某种语法,对语言的功能没有影响,但是方便开发人员使用。 泛型是一种语法糖...

阿历Ali
2018/08/18
0
0
分享面试中Java虚拟机的知识

投Java岗的同学难免会被问到Java虚拟机,如果能答出来一定加分不少。 前一段时间读了《深入理解Java虚拟机》,读完之后有种豁然开朗的感觉。发现自己以前写的Java程序都太Low了,在不了解Jav...

350142639
2016/08/31
372
1
《成神之路-基础篇》JVM——JVM内存结构(已完结)

Java内存模型,Java内存管理,Java堆和栈,垃圾回收 本文是《成神之路系列文章》的第一篇,主要是关于JVM的一些介绍。 持续更新中 参考文章: Java虚拟机的内存组成以及堆内存介绍 Java堆和栈...

2018/05/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

arduino项目-1. 模拟楼道灯

@toc 1.1 情景说明 说明 漆黑的夜晚,当有人非法进入一所房屋,房屋内的灯在恰当的时间亮起,也许会有效阻止非法活动的继续。 效果展示 1.2 实验器材 器材名称 数量 继电器 1 人体红外感应器...

acktomas
26分钟前
4
0
Nacos 常见问题及解决方法

Nacos 开源至今已有一年,在这一年里,得到了很多用户的支持和反馈。在与社区的交流中,我们发现有一些问题出现的频率比较高,为了能够让用户更快的解决问题,我们总结了这篇常见问题及解决方...

阿里云官方博客
32分钟前
6
0
pinyin4j 满足中文转拼音的需求

引入依赖 // https://mvnrepository.com/artifact/com.belerweb/pinyin4j //汉字转拼音compile group: 'com.belerweb', name: 'pinyin4j', version: '2.5.1' 写入中文转拼英的工具......

edison_kwok
37分钟前
5
0
IPSE接入Substrate/Polkadot插槽实现互操作性的运行原理

Substrate框架将区块链的众多功能都模块化,对于开发者来说,只是一个选择的问题,同时还保持了众多的可以定制的功能和模块,比如底层通信模块,比如账户体系,比如共识机制等都是可以自己定...

IPSE
43分钟前
156
0
linux配置安装phpMyAdmin的步骤记录

1、首先在phpMyAdmin官方网站 http://www.phpmyadmin.net/downloads下载源码包,或者通过脚本之家进行下载://www.jb51.net/codes/405261.html ,下载后上传到服务器解压即可,或者通过Linux...

蜗牛女孩
45分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部