写点什么

为什么那么多带 GC 的语言, 只有 JVM 需要调优?

  • 2024-12-24
    湖南
  • 本文字数:591 字

    阅读完需:约 2 分钟

我们都知道 Java 在运行时内存分为了五个部分:程序计数器、虚拟机栈、本地方法栈、堆、方法区。其中程序计数器、虚拟机栈、本地方法栈所占用的内存是不需要垃圾收集的,这三个区域的内存随着线程生,随着线程死,我们需要关注的其实只有堆和方法区这两块内存的垃圾收集。这时候就需要用到 GC 技术了。

对于垃圾回收概念,它一出现常常伴随着一连串的问题:

  • GC 具体做了什么?

  • 哪些内存需要回收?

  • 什么时候回收?

  • 怎么回收?

  • 垃圾回收算法 &垃圾回收器有哪些?

  • ......

如果你是一个新手,这些问题扑面而来的时候你肯定会一脸懵逼,不知道该怎么办。本着遇到问题就要解决问题的原则,今天小编为大家带来了一份 Github 爆火的 GC 面试小册,虽然它的体系结构与其他“GC 书”一样,大致分为算法篇与实现篇两部分。但细节之处却是与大众不同,大家看了就知道,差距不止一点点。

在算法篇中,详细解释 GC 算法_G1GC 的原理。在实现篇中,结合实用 JVM,聚焦了算法篇中没有详细讲解的实现部分。需要的小伙伴 +v:bjmsb0606006 即可`

不多 BB,来看主要内容

算法篇

目录一览





内容一览

  • G1GC 堆结构


  • 并发标记


  • GC 预测转移时间


  • G1GC 新生代区域


  • GC 执行的时机


实战篇

目录一览







内容一览

  • 准备工作


  • 对象管理功能


  • G1GC 堆结构


  • 内存分配流程


  • 线程生命周期


  • GC 线程并行执行的流程


  • 并发 GC 安全点


  • HotSpotVM 的执行流程


  • JT 编译器的写屏障


最后

文章到这里就篇幅很长了,为了不影响大家的阅读体验就展示到这里,需要的小伙伴 +v:bjmsb0606006 即可~

用户头像

不定期更新Java开发工具及Java面试干货技巧 2021-12-12 加入

Java后端工程师,十年大厂经验。具有扎实的Java、JEE基础知识。熟悉Spring、SpringMVC、Struts MyBatisHibernate等JEE常用框架。

评论

发布
暂无评论
为什么那么多带GC的语言,只有JVM需要调优?_程序员_了不起的程序猿_InfoQ写作社区