• 欢迎访问 winrains 的个人网站!
  • 本网站主要从互联网整理和收集了与Java、网络安全、Linux等技术相关的文章,供学习和研究使用。如有侵权,请留言告知,谢谢!

深入理解垃圾回收机制

深入理解垃圾回收机制
1. Garbage Collect(垃圾回收) 之前说堆内存中有垃圾回收,比如Young区的Minor GC,Old区的Major GC,Young区和Old区的Full GC。 但是对于一个对象而言,怎么确定它是垃圾?是否需要被回收?怎样对它进行回收?等等这些问题我们还需要详细探索。 因为Java是自动做内存管理和垃圾回收的,如果不了解垃圾回收的各方……继续阅读 »

winrains 3个月前 (03-31) 32浏览 0个赞

Java垃圾回收机制

Java垃圾回收机制
导读 一个对象的一生经历了什么? 如何判断对象是否可用? 引用计数法和可达性分析算法各有什么优缺点? 哪些对象可以作为GC ROOT? 垃圾回收的时候如何快速寻找到根节点?(安全点和OopMap) 垃圾回收算法有哪些?各有什么优缺点? 有哪些垃圾回收器?各有什么优缺点?适用什么场景 1、对象回收处理过程 2、判断用户是否可用算法 2.1、引用计数算法 ……继续阅读 »

winrains 5个月前 (02-20) 24浏览 0个赞

Java GC垃圾回收机制

Java GC垃圾回收机制
Java GC垃圾回收几乎是面试必问的JVM问题之一,本篇文章带领大家了解Java GC的底层原理,图文并茂,突破学习及面试瓶颈。 楔子-JVM内存结构补充 在上篇《JVM之内存结构详解》中有些内容我们没有讲,本篇结合垃圾回收机制来一起学习。还记得JVM中堆的结构图吗? 图中展示了堆中三个区域:Eden、From Survivor、To Survivor。……继续阅读 »

winrains 8个月前 (11-07) 17浏览 0个赞

JVM源码分析(14):YGC的来龙去脉

JVM源码分析(14):YGC的来龙去脉
换了新工作,确实比以前忙多了,从而也搁置了自己兴趣,不过还是想方设法的挤出一点时间把YGC的一些细节实现重新看了几遍,HotSpot里的不少代码写的太纠结,山路十八弯,要理清楚确实需要费点时间。 YGC是JVM GC当前最为频繁的一种GC,一个高并发的服务在运行期间,会进行大量的YGC,发生YGC时,会进行STW,一般时间都很短,除非碰到YGC时,存在大量……继续阅读 »

winrains 9个月前 (10-30) 36浏览 1个赞

JVM源码分析(12):老年代TenuredGeneration的垃圾回收算法实现

JVM源码分析(12):老年代TenuredGeneration的垃圾回收算法实现
接着上文《JVM源码分析之新生代DefNewGeneration的实现》,本文对老年代TenuredGeneration的垃圾回收算法进行分析。 TenuredGeneration 老年代TenuredGeneration使用标记-压缩-清理算法进行垃圾回收,将标记对象移动到堆的另一端,同时更新对象的引用地址,算法的具体实现位于TenuredGenera……继续阅读 »

winrains 9个月前 (10-30) 21浏览 0个赞

JVM源码分析(10):垃圾收集的执行过程

JVM源码分析(10):垃圾收集的执行过程
接着上文《JVM源码分析之如何触发并执行GC线程》,本文对GC线程的执行过程进行分析,当新生代的可用内存不足时,会触发YGC操作,回收新生代的垃圾对象,具体实现是创建一个VM_GenCollectForAllocation类型的VM_Operation,并交由VMThread进行调度执行。 YGC 整个YGC的过程如下 step 1 通过VMTh……继续阅读 »

winrains 9个月前 (10-30) 23浏览 0个赞

JVM源码分析(9):如何触发并执行GC线程

JVM源码分析(9):如何触发并执行GC线程
前言 由于JVM中垃圾收集器的存在,使得Java程序员在开发过程中可以不用关心对象创建时的内存分配以及释放过程,当内存不足时,JVM会自动开启垃圾收集线程,进行垃圾对象的回收。对象的创建、使用,到最后的回收,整个过程就这样悄无声息的发生着,那么这些垃圾回收线程到底是什么时候触发,并如何执行的呢?本文将对openjdk的源码进行分析,了解一下相关的底层实现……继续阅读 »

winrains 9个月前 (10-30) 16浏览 0个赞

详解JVM内存管理与垃圾回收机制(2):何为垃圾

详解JVM内存管理与垃圾回收机制(2):何为垃圾
随着编程语言的发展,GC的功能不断增强,性能也不断提高,作为语言背后的无名英雄,GC离我们的工作似乎越来越远。作为Java程序员,对这一点也许会有更深的体会,我们不需要了解太多与GC相关的知识,就能很好的完成工作。那还有必要深入了解GC吗?学习GC的意义在哪儿? 不管性能提高到何种程度,GC都需要花费一定的时间,对于实时性要求较高的场景,就必须尽量压低GC导……继续阅读 »

winrains 9个月前 (10-20) 23浏览 0个赞

Java虚拟机详解(4):垃圾收集器

Java虚拟机详解(4):垃圾收集器
上一篇博客我们介绍了Java虚拟机垃圾回收,介绍了几种常用的垃圾回收算法,包括标记-清除,标记整理,复制等,这些算法我们可以看做是内存回收的理论方法,那么在Java虚拟机中,由谁来具体实现这些方法呢? 没错,就是本篇博客介绍的内容——垃圾收集器。 1、垃圾收集器种类 事实上Java虚拟机规范对垃圾收集器应该如何实现,并没有任何的规定,所以不同的厂商、不同版本……继续阅读 »

winrains 10个月前 (09-19) 20浏览 0个赞

Java虚拟机详解(3):垃圾回收

Java虚拟机详解(3):垃圾回收
如果对C++这门语言熟悉的人,再来看Java,就会发现这两者对垃圾(内存)回收的策略有很大的不同。 C++:垃圾回收很重要,我们必须要自己来回收!!! Java:垃圾回收很重要,我们必须交给系统来帮我们完成!!! 我想这也能看出这两门语言设计者的心态吧,总之,Java和C++之间有一堵由内存动态分布和垃圾回收技术所围成的高墙,墙外面的人想进去,墙里面的人想出……继续阅读 »

winrains 10个月前 (09-19) 20浏览 0个赞