前言 简单的针对JAVA虚拟机(JVM)相关知识做一个总结,从此章开始这是一个系列文章,包括内容有; 1 前端编译,AOT(静态编译),JIT即时编译 2 字节码文件的结构,类加载机制以及运行时内存区域 3 关于对象的创建,内存的分配,访问的定位,判断对象是否可用,内存的回收 4 对象内存分配及垃圾 ...
分类:
其他好文 时间:
2018-07-18 17:19:46
阅读次数:
147
垃圾回收算法的好坏直接影响到程序运行效率,接下来对几种常见的回收算法进行介绍。 标记 清除算法(Mark Sweep) 该算法是最基础的收集算法,算法分“标记”和“清除”两部分。 回收过程是标记出需要所有需要回收的对象,在标记完成后统一回收被标记的对象 不足 1. 标记和清除两个过程效率并不高。 2 ...
分类:
编程语言 时间:
2018-07-14 20:02:54
阅读次数:
175
本文中的垃圾收集器研究背景为:HotSpot+JDK1.7 一、垃圾收集器概述 如上图所示,垃圾回收算法一共有7个,3个属于年轻代、三个属于年老代,G1属于横跨年轻代和年老代的算法。 JVM会从年轻代和年老代各选出一个算法进行组合,连线表示哪些算法可以组合使用 二、各个垃圾收集器说明 1、Seria ...
分类:
其他好文 时间:
2018-07-09 16:34:25
阅读次数:
219
C/C++经典垃圾回收算法 1. 引用计数法: 2. 标记-清除算法 3. 标记-缩并算法 4. 节点拷贝算法 引用计数法能够平滑的进行垃圾回收,而不出现“停止”现象,经常出现于一些实时系统中,但它无法解决环形问题。 后面三种统称为跟踪垃圾回收,在每一次垃圾回收过程中,要遍历或者复制所有存活的对象, ...
分类:
其他好文 时间:
2018-07-06 10:09:16
阅读次数:
163
一、介绍 GC(Garbage Collection),垃圾收集 Java中,GC的对象是堆空间和永久区 二、GC算法 1. 引用计数法 老牌垃圾回收算法 通过引用计算来回收垃圾 Java中未使用,使用者有COM、ActionScript3、Python 引用计数器的实现: 对于一个对象A,只要有任 ...
分类:
编程语言 时间:
2018-06-03 01:02:35
阅读次数:
191
垃圾回收算法 https://www.cnblogs.com/jilodream/p/9038853.html 说到Java,一定绕不开GC,尽管不是Java首创的,但Java一定是使用GC的代表。GC就是垃圾回收,更直接点说就是内存回收。是对内存进行整理,从而使内存的使用尽可能大的被复用。 一直想 ...
分类:
编程语言 时间:
2018-05-20 10:48:43
阅读次数:
177
前言 在 "深入浅出 JVM GC(1)" 中,限于上篇文章的篇幅,我们留下了一个问题 : 如何回收? 这篇文章将重点讲述这个问题。 在上篇文章中,我们也列出了一些大纲,今天我们就按照那个大纲来逐个讲解。在此,我将大纲复制过来。 垃圾回收算法 1. 标记清除算法 2. 复制算法 3. 标记整理算法 ...
分类:
其他好文 时间:
2018-05-20 00:44:44
阅读次数:
179
说到Java,一定绕不开GC,尽管不是Java首创的,但Java一定是使用GC的代表。GC就是垃圾回收,更直接点说就是内存回收。是对内存进行整理,从而使内存的使用尽可能大的被复用。 一直想好好写一篇关于GC的文章,可是却发现要写的东西太大了,不是一篇博客能简单的介绍完的。所以打算拆分成若干篇博客,一 ...
分类:
编程语言 时间:
2018-05-15 01:49:43
阅读次数:
229
整理了一下JVM垃圾回收的分代回收算法,旨在能够以后能够快速熟悉这些算法,而不用去查找大量资料(可以认为是偷懒),也是为了分纤箱一下自己的一些理解,有不足或错误之处,希望大家指正,共同进步!1.分代回收算法分代回收算法是标记-复制算法和标记-整理算法(标记-清楚)的集合,朱亚平是对新生代和老年代分别 ...
分类:
编程语言 时间:
2018-05-12 10:24:12
阅读次数:
133
1、标记-清除算法 标记-清除(Mark-Sweep)算法是一种基础的收集算法。 1、算法思路 "标记-清除"算法,分为两个阶段: (A)、标记 首先标记出所有需要回收的对象; 标记过程如《Java虚拟机垃圾回收(一) 基础》"2-4、判断对象生存还是死亡"中所述--分为两个标记过程(详细请参考前文 ...
分类:
编程语言 时间:
2018-05-10 12:13:10
阅读次数:
159