JVM-G1垃圾回收器:从入门到-到搬砖系列一:简介跟基础介绍(内存模型)

(一) G1(Garbage First Collection):简介

进入正题之前,我们首先聊聊这是一个什么类型的博客。阅读这一系列博客的作用,跟跟达到的实际效果是什么。

1.这是一个什么类型的文章?

本人最近一直在研究JVM,说实话,这东西内容多,知识资料也挺杂。如果作为一个刚刚入门,或者是只是有一点点工作经验的人来说,看那些知识断章的文章,或者是去看周志明老师的:《深入理解JVM》,说实话:是真的看完就忘记系列。当然也不是不推荐大家去看,而是说,作为一个小白同学,一下就去理解这么庞大的内容,并且从中扣细节,属实比较困难。到最后就变成了背概念,然后过不久就成了忘记牛逼知识系列了。

所以这篇文章的针对人群呢,就是有一点点java基础,然后又想开始深入理解底层jvm知识的人群。

2.阅读文章后达到的效果

1.首先为咱们理清G1垃圾回收器的整体脉络。

2.为我们工作中的jvm调优,提供理论基础,并且提供一些调优知识以及经验。

3.为我们面试中的jvm问答提供一个基本知识架构基础。做到问到不慌,心中有丘壑。

3.G1是什么?

G1全称:Garbage First Collection,翻译一下就是垃圾优先收集器。当然还有各种各样的一个七七八八的历史简介,大家百度一下五花八门的都有,我们就不在这详细的赘述了。

稍稍要谈一下G1的话,必然绕不开的就是CMS,所以我们就稍微拿两者来对比一下,来聊聊G1是什么。

1.G1 在我看来是继承CMS这个垃圾回收器的基础之上研发出来的。同样的并发垃圾收集器,大大减少了STW(Stop The World)时间。

2.他们两个的垃圾回收算法的核心思想都是空间换时间,但是G1相对于CMS来说做的更加优秀。

3.G1作为更先进的垃圾回收器,相对于CMS来说简化了更多的参数,让更多的工作交由G1本身动态设置,简化了开发人员的工作量跟学习成本。设置基本的简单的参数就能达到非常好的运行效果。

4.为什么学习G1

非常简单的一个原因,因为工作中用到了。JDK8作为现在所有互联网各大厂商大面积使用的版本,其中能用的的垃圾回收器无外乎三种:Parallel Scavenger、CMS、G1。其中以CMS跟G1 为最主要的两个类型,像我待过的几家公司,所有的都是这两个垃圾回收器。所以作为日常工作,还是面试,都必须了解甚至是熟练掌握这两个垃圾回收器的原理。

5.how?怎么去学G1?

在我看来,学习一门知识,首先观其脉络,知道其总体的架构思路。然后再细细掰其中的细节。这样能更快更好的理解细节的内容,以及为什么这样处理的原因。所以,接下来,我就会首先把G1所涉及到的部分基础知识,一一介绍。然后,讲G1的整个流程,最后再详细的掰开回收流程之中每个阶段的详细内容。

(二)G1脉络介绍(内存模型)

1.内存模型:

首先一图胜过前言万语,上一张G1内存模型图。

内存模型图

名词概念普及

Region: G1把堆内存分成一块块的小内存分区, 每块分区的大小为1~32M之间。如果你不设置分区大小(+XX:G1HeapRegionSize = N),默认大小:X=Head(堆内存大小)/ 2048,但是X大小,只能在2的幂次方中取(1,2,4,8,16,32),

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ocean曈

您的支持,是我创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值