整理了一下JVM垃圾回收的分代回收算法,旨在能够以后能够快速熟悉这些算法,而不用去查找大量资料(可以认为是偷懒),也是为了分纤箱一下自己的一些理解,有不足或错误之处,希望大家指正,共同进步!1.分代回收算法分代回收算法是标记-复制算法和标记-整理算法(标记-清楚)的集合,朱亚平是对新生代和老年代分别 ...
分类:
编程语言 时间:
2018-05-12 10:24:12
阅读次数:
133
1、 分代 虚拟机中的共划分为三个代: 年轻代(Young Gen):eden和survivor-8:1:1 年老代(Old Gen):存储大对象,由survivor晋升 永久代(perm Gen):perm gen 含class metadata、class static variables和in ...
分类:
其他好文 时间:
2018-05-10 13:22:23
阅读次数:
151
三: new的对象一定放在堆上吗? 有方法放到栈上? 四:JVM垃圾回收?几种策略? cocurrent GC ? 五: 内存泄露(out of memory) VS 内存溢出(stack overflow)? 什么情况会导致内存泄露?调整虚拟参数? 分析DUMP文件。 六:IOC如何实现?工厂模式 ...
分类:
编程语言 时间:
2018-05-05 19:44:12
阅读次数:
149
二: String aa = "abc"; String aa = new String("abc"); 区别是什么放在哪?字面量放在哪,方法区?最近的版本改了,好像放在堆里了。 三: new的对象一定放在堆上吗? 有方法放到栈上? 四:JVM垃圾回收?几种策略? cocurrent GC ? 五: ...
分类:
编程语言 时间:
2018-05-05 15:59:01
阅读次数:
164
参考书籍:疯狂JAVA讲义 1.进程和线程; 进程是处于运行过程中的程序;并且具有一定的独立功能;进程是系统进行系统资源分配和调度的一个独立单位. 一般而言,进程包括以下三个特征: 独立性:进程是系统中存在的实体,它可以拥有自己独立的资源,每一个进程都拥有自己私有的地址空间.在没有经过进程本身允许的 ...
分类:
编程语言 时间:
2018-04-26 01:32:29
阅读次数:
194
1. 串行回收 一般使用在单CPU的平台上 用-XX:+UseSerialGC打开2. 并行回收 一般使用在多CPU的平台上 用-XX:UseParallelGC打开(年轻代使用并行回收可以减少垃圾回收的时间) 用-XX:UseParallelOldGC打开对老年代进行并收集&n
分类:
其他好文 时间:
2018-03-29 14:49:45
阅读次数:
107
相信和小编一样的程序猿们在日常工作或面试当中经常会遇到JVM的垃圾回收问题,有没有在夜深人静的时候详细捋一捋JVM垃圾回收机制中的知识点呢?没时间捋也没关系,因为小编接下来会给你捋一捋。 一、 技术背景你要了解吧 二、 哪些内存需要回收? 2.1 引用计数算法 2.1.1 算法分析 2.1.2 优缺 ...
分类:
编程语言 时间:
2018-03-28 12:20:33
阅读次数:
186
我们都知道java语言与C语言最大的区别就是内存自动回收,那么JVM是怎么控制内存回收的,这篇文章将介绍JVM垃圾回收的几种算法,从而了解内存回收的基本原理。 stop the world 在介绍垃圾回收算法之前,我们需要先了解一个词“stop the world”,stop the world会在 ...
分类:
编程语言 时间:
2018-03-12 12:00:46
阅读次数:
177
1、概念 GC 中的垃圾,特指存在于内存中、不会再被使用的对象。垃圾回收有很多种算法,如引用计数法、复制算法、分代、分区的思想。 2、算法 1、引用计数法:对象被其他所引用时计数器加 1,而当引用失效时则减 1,。但这种方式有非常严重的问题:无法处理循环引用的情况、还有就是每次进行加减操作比较浪费性 ...
分类:
编程语言 时间:
2018-01-29 20:14:41
阅读次数:
108
jvm垃圾回收目前都是采用分代回收机制,old代和new代分别采用不同算法。 按照基本回收策略分:复制、标记-清除算法、标记-压缩算法 复制算法(copying) 将内存分成两块,每次只使用其中一块,垃圾回收时,将标记的对象拷贝到另外一块中,然后完 全清除原来使用的那块内存。复制后的空间是连续的。复 ...
分类:
其他好文 时间:
2018-01-28 00:03:36
阅读次数:
129