方法区 方法区与Java堆一样,是各个线程共享的区域,它用于存储已被虚拟机加载的类信息,常量,静态变量,即时编译(JIT)后的代码等数据。对于JDK1.8之前的HotSpot虚拟机而言,很多人经常将方法区称为我们上图中所描述的永久代,实际上两者并不等价,因为这仅仅是HotSpot的设计团队选择利用永 ...
分类:
其他好文 时间:
2020-07-04 18:58:52
阅读次数:
73
垃圾收集器 Serial收集器 ? 这个收集器是一个单线程工作的收集器,“单线程”不仅仅是说它只会使用一个处理器或一条收集线程去完成垃圾收集工作,更重要的是强调在它进行垃圾收集时,必须暂停其他所有工作线程,直到它收集结束。迄今为止,它依然是HotSpot虚拟机运行在客户端模式下的默认新生代收集器, ...
分类:
其他好文 时间:
2020-07-04 17:04:52
阅读次数:
48
3. 回收器 3.1 Serial回收器:串行回收 3.1.1 概述 Serial收集器是最基本、历史最悠久的垃圾收集器了。JDK1.3之前回收新生代唯一的选择。 Serial收集器作为Hotspot中Client模式下的默认新生代垃圾收集器。 Serial收集器采用复制算法、串行回收和"stop- ...
分类:
其他好文 时间:
2020-07-02 21:38:41
阅读次数:
63
java有两个特性。一是所谓的“书写一次,到处运行”(Write once, run anywhere),能够非常容易地获得跨平台能力;另外就是垃圾收集(GC, Garbage Collection),Java 通过垃圾收集器(Garbage Collector)回收分配内存,大部分情况下,程序员不 ...
分类:
编程语言 时间:
2020-06-30 00:43:26
阅读次数:
65
支持启动时选择 JVM 进程列表;
支持观测详细的收集器GC暂停时间;
图表支持鼠标移动详细信息显示(时间和值);
支持 Hotspot JDK 8+版本下运行, 可检测 Hotspot JDK 1.5 ~ 14, 在 CMS, G1等收集器下检测通过; ...
分类:
其他好文 时间:
2020-06-22 17:23:51
阅读次数:
62
上一篇我们讲了垃圾标记的一些实现细节和经典算法,而本文将系统的讲解一下垃圾回收的经典算法,和Hotspot虚拟机执行垃圾回收的一些实现细节,比如安全点和安全区域等。 因为各个平台的虚拟机操作内存的方法各不相同,且牵扯大量的程序实现细节,所以本文不会过多的讨论算法的具体实现,只会介绍几种算法思想及发展 ...
分类:
编程语言 时间:
2020-06-21 18:04:15
阅读次数:
59
如果垃圾回收的算法属于内存回收的方法论的话,那本文讨论的垃圾回收器就属于内存回收的具体实现。 因为不同的厂商(IBM、Oracle),实现的垃圾回收器各不相同,而本文要讨论的是 Oracle 的 HotSpot 虚拟机所使用的垃圾回收器。 常用垃圾回收器,如下图所示: 新生代回收器:Serial、P ...
分类:
编程语言 时间:
2020-06-21 18:01:45
阅读次数:
62
前言 Shenandoah作为第一款不由Oracle(包括一起的Sun)公司的虚拟机团队所领导开发的HotSpot垃圾收集器。是只存在于OpenJDK当中的,最初由RedHat公司创建的,在2014年的时候贡献给了OpenJDK。 与G1相比的优点 从代码的历史渊源上来看,Shenandoah收集器 ...
分类:
其他好文 时间:
2020-06-17 23:37:51
阅读次数:
75
Java代码的执行分类: 第一种是将源代码编译成字节码文件,然后再运行时通过解释器将字节码文件转为机器码执行 第二种是编译执行(直接编译成机器码)。现代虚拟机为了提高执行效率,会使用即时编译技术(JIT,Just In Time)将方法编译成机器码后再执行 HotSpot VM是目前市面上高性能虛拟 ...
分类:
其他好文 时间:
2020-06-10 17:39:11
阅读次数:
64
JVM源码分析之安全点SafePoint safepoint可以用在不同地方,比如GC、Deoptimization,在Hotspot VM中,GC safepoint比较常见,需要一个数据结构记录每个线程的调用栈、寄存器等一些重要的数据区域里什么地方包含了GC管理的指针。 从线程角度看,safep ...
分类:
其他好文 时间:
2020-06-09 18:24:34
阅读次数:
49