垃圾收集器 Serial收集器 ? 这个收集器是一个单线程工作的收集器,“单线程”不仅仅是说它只会使用一个处理器或一条收集线程去完成垃圾收集工作,更重要的是强调在它进行垃圾收集时,必须暂停其他所有工作线程,直到它收集结束。迄今为止,它依然是HotSpot虚拟机运行在客户端模式下的默认新生代收集器, ...
分类:
其他好文 时间:
2020-07-04 17:04:52
阅读次数:
48
CAS:Compare and Swap,即比较再交换。 在对compareAndSwapObject追源码的过程中,出现 "Source not found"的情况,查了一下,原来是该方法并非由JAVA书写开发,而是引入的其他语言。 jdk5增加了并发包java.util.concurrent.* ...
分类:
其他好文 时间:
2020-07-03 17:56:15
阅读次数:
97
3. 回收器 3.1 Serial回收器:串行回收 3.1.1 概述 Serial收集器是最基本、历史最悠久的垃圾收集器了。JDK1.3之前回收新生代唯一的选择。 Serial收集器作为Hotspot中Client模式下的默认新生代垃圾收集器。 Serial收集器采用复制算法、串行回收和"stop- ...
分类:
其他好文 时间:
2020-07-02 21:38:41
阅读次数:
63
针对新生代的GC复制算法和老年代的GC标记-整理算法,jvm针对新生代和老年代分别提供了不同的垃圾收集器 新生代: Serial,ParNew, ParallelScavenge 老年代:CMS,SerialOld(MSC),ParallelOld 从新生代介绍起: 1.Serial 垃圾收集器(单 ...
分类:
其他好文 时间:
2020-07-01 23:52:59
阅读次数:
79
《深入理解java虚拟机 第二版 JVM高级特性与最佳实践》里面提到 CMS 垃圾收集器。 CMS 垃圾收集器的垃圾回收分4个步骤: 初始标记(initial mark) 有 STW 并发标记(concurrent mark) 没有 STW 重新标记(remark) 有 STW 并发清除(concu ...
分类:
其他好文 时间:
2020-07-01 12:47:01
阅读次数:
104
垃圾收集器与内存分配策略 概述 程序计数器,虚拟机栈,本地方法栈随线程创建而产生,随线程销毁而消失,内存的分配和回收具有确定性,一般不考虑回收问题. 对象存活性判断 引用计数算法(Reference Counting) 特点: 在对象中添加一个引用计数器. 当有一个引用时,计数器加一;当一个引用失效 ...
分类:
编程语言 时间:
2020-07-01 09:45:16
阅读次数:
54
内存溢出以及堆栈溢出 简单认识一下2种内存异常OutOfMemoryError,StackOverflowError 来自JDK Doc的解释: public class OutOfMemoryError extends VirtualMachineError Thrown when the Jav ...
分类:
其他好文 时间:
2020-06-30 10:24:17
阅读次数:
51
java有两个特性。一是所谓的“书写一次,到处运行”(Write once, run anywhere),能够非常容易地获得跨平台能力;另外就是垃圾收集(GC, Garbage Collection),Java 通过垃圾收集器(Garbage Collector)回收分配内存,大部分情况下,程序员不 ...
分类:
编程语言 时间:
2020-06-30 00:43:26
阅读次数:
65
CLR GC是一种引用跟踪算法,大致步骤如下: 1、暂停进程中所有的线程; 2、标记阶段,遍历堆中的所有对象,标记为删除,然后检查所有活动根,如果有引用对象,就标记那个对象可达,否则不可达; 3、GC压缩阶段,对堆中可达对象压缩,使占用连续的内存; GC是基于代的垃圾回收算法,对象越新,生存期越短, ...
分类:
其他好文 时间:
2020-06-27 14:45:03
阅读次数:
62
垃圾回收(GC),主要关注三个点:如何进行回收,哪些内存需要回收,什么时候回收。 在上一个文章中介绍到了程序计数器,Java虚拟机栈,本地方法栈会随着线程生而生灭而灭,同时Java虚拟机栈中的栈帧会随着方法的进入和退出执行者入栈和出栈的操作。每一个栈帧分配多少内存在类结构确定的时候就已经确认(JIT ...
分类:
其他好文 时间:
2020-06-26 16:50:13
阅读次数:
60