JVM系列随笔主要是对《深入理解Java虚拟机:JVM高级特性与最佳实践 第2版》的学习总结 概述 GC(Garbage Collection)是垃圾收集的简称,比Java的历史更加久远。经过半个多世纪的发展,已经实现了自动化。作为学习,我们需要搞清楚GC的三件问题 ...
引言: 前面的文章提到,在 版本以后,Java内存区域:Heap包括了PSYoungGen ParOldGen,以及堆外内存MetaSpace。JVM 在进行GC时,并非每次都对上面三个内存区域一起回收的,大部分时候回收的都是新生代。由于新生代和老年代的内存空间大小不同以及对象存活率不同,所以针对不同区域JVM采用了不同的GC,不同的GC是通过不同的算法实现的。在Jdk 中,按照回收区域的不同,把 ...
2019-10-15 11:54 0 950 推荐指数:
JVM系列随笔主要是对《深入理解Java虚拟机:JVM高级特性与最佳实践 第2版》的学习总结 概述 GC(Garbage Collection)是垃圾收集的简称,比Java的历史更加久远。经过半个多世纪的发展,已经实现了自动化。作为学习,我们需要搞清楚GC的三件问题 ...
四大基本算法思想 贪心算法 定义 假设一个问题比较复杂,暂时找不到全局最优解,那么我们可以考虑把原问题拆成几个小问题(分而治之思想),分别求每个小问题的最优解,再把这些“局部最优解”叠起来,就“当作”整个问题的最优解了。漫画:五分钟学会贪心算法 贪心算法,又名贪婪法,是寻找最优解问题 ...
在判断哪些内存需要回收和什么时候回收用到GC 算法,本文主要对GC 算法进行讲解。 JVM垃圾判定算法 常见的JVM垃圾判定算法包括:引用计数算法、可达性分析算法。 引用计数算法(Reference Counting) 引用计数算法是通过判断对象的引用数量来决定对象是否可以被回收 ...
GC 作为一个长久的话题,从诞生[1]至今也算是经历了六七十年了,对于很多习惯于使用 Java/Python 的同学来说,对于内存的管理可能会稍微更陌生一些,因为这些语言在语言层面就屏蔽了内存的分配和管理,帮助我们减少了超多的麻烦。但是,在帮助我们减少麻烦的同时,也带来了很多问题,其中一个就是内存 ...
生存还是死亡 对象是否需要被垃圾收集器回收主要有两种方式:引用计数法和可达性分析算法 引用计数法 给对象添加一个引用计数器,每当有一个地方引用他的时候,计数器的数值就+1,当引用失效时,计数器就-1;任何时候计数器的数值都为0的对象时不可能再被使用的。 客观的来说,引用计数法实现简单,判定 ...
一、首先什么是垃圾(garbage)? 没有引用指向的一个或多个对象叫做垃圾; 二、如何找到这些垃圾 一般有两种方法: 引用计数 根可达算法 1、第一种叫做引用计数法(reference count),有一个引用指向一个对象,计数就加 ...
GC的阶段 对每个对象而言,垃圾回收分为两个阶段:finalization和reclamation。 finalization: 指运行这个对象的finalize的方法。 reclamation: 回收被这个对象使用的内存。 GC ...
四种GC算法 GC垃圾回收,首先需要判断哪些对象需要回收 判断对象存活 可达性分析: 从GC Roots开始向下查询,如果一个对象到任何一个GC Root对象都没有一个引用链相连的话,说明此对象不可用。 四个GC Root对象 JVM栈中引用的对象 方法区静态属性引用 ...