1.堆的分代和区域(年轻代)Young Generation(eden、s0、s1 space) Minor GC(老年代)Old Generation (Tenured space) Major GC|| Full GC(永久代)Permanent Generation (Permanent sp... ...
分类:
编程语言 时间:
2017-09-20 11:56:05
阅读次数:
520
【正文】 声明:本文只是做一个总结,有关jvm的详细知识可以参考之前的系列文章,尤其是那篇:Java虚拟机详解04—-GC算法和种类。那篇文章和本文是面试时的重点。 面试必问关键词:JVM垃圾回收、类加载机制。 先把本文的目录画一个思维导图:(图的源文件在本文末尾) 一、Java引用的四种状态: 强 ...
分类:
编程语言 时间:
2017-09-19 15:34:25
阅读次数:
368
JVM垃圾回收算法(最全) 下面是JVM虚拟机运行时的内存模型: 1.方法区 Perm(永久代、非堆) 2.虚拟机栈 3.本地方法栈 (Native方法) 4.堆 5.程序计数器 1 首先的问题是:jvm如何知道那些对象需要回收 ? 目前两种标识算法、三种回收算法、两种清除算法、三种收集器 引用计数 ...
分类:
编程语言 时间:
2017-09-18 20:31:34
阅读次数:
217
1, 串行回收器 1.1, 新生代串行回收器 (1)特点: –它仅仅使用单线程进行垃圾回收 –它是独占式的垃圾回收 –进行垃圾回收时, Java应用程序中的线程都需要暂停(Stop-The-World) –使用复制算法 –适合CPU等硬件不是很好的场合 (2)设置参数: -XX:+UseSerial ...
分类:
其他好文 时间:
2017-09-13 19:25:14
阅读次数:
157
1. List集合下常用的集合(ArrayList,LinkedList,Vector); JVM垃圾回收GC,Java中采取了可达性分析法,标记所有从根节点开始的可达对象,未被标记的对象就是未被引用,但是没有引用的不一定会被作为垃圾清理,因为有些是可复活对象,这里不作说明,除以上情况以外的会被作为 ...
分类:
其他好文 时间:
2017-09-04 15:06:27
阅读次数:
145
覆盖和重载 正则源码 hashmap源码 hashmap与hashtable区别 threadlocal源码 concurrenthashmap源码 序列化 反序列化需要默认构造函数? jvm垃圾回收 jvm引用类型及区别 jvm内存模型 线程 工作内存 主内存 http://www.jianshu ...
分类:
其他好文 时间:
2017-09-03 17:08:47
阅读次数:
157
【1】HashMap、ConcurrentHashMap、HashTable、HashSet 【2】JVM相关 ...
分类:
编程语言 时间:
2017-08-25 12:11:16
阅读次数:
108
Serial收集器 Serial收集器是最基本、历史最悠久的收集器。这个收集器是一个单线程的收集器。它在进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集结束。Serial收集器是新生代的收集器。采用的复制算法。 ParNew收集器 ParNew收集器其实就是Serial收集器的多线程版本,除了 ...
分类:
其他好文 时间:
2017-08-22 21:53:45
阅读次数:
134
标记-清除算法 算法分为标记和清除两个阶段:首先标记所有需要回收的对象,在标记完成后统一回收所有被标记的对象。 该算法存在的缺点: 1、 效率问题:标记和清除两个过程的效率都不高 2、 空间问题:标记清除之后会产生大量不连续的内存碎片,内存碎片太多可能会倒是以后在程序运行过程中需要分配较大的对象时, ...
分类:
编程语言 时间:
2017-08-21 20:39:50
阅读次数:
217
垃圾回收器在对对象进行回收前,首先要判断对象是否还“活着”。判断方法有以下两种 引用计数法 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1。当引用失效时,计数器值就减1。任何时刻计数器为0的兑现就是不可能再被使用的。 引用计数法的实现简单,判断效率也高,也有一些比较著名的应用案例 ...
分类:
其他好文 时间:
2017-08-21 17:50:18
阅读次数:
149