摘要: 查看虚拟机进程:jps 命令 jps 命令可以列出所有的 Java 进程。如果 jps 不加任何参数,可以列出 Java 程序的进程 ID 以及 Main 函数短名称,如下所示。 除此之外,还可以指定下面的参数自定义输出信息: | 参数 | 含义 | |: :|: :| | q|指定jps只输出进程阅读全文
posted @ 2018-12-10 20:17 陈树义 阅读(19) 评论(0) 编辑
摘要: 今天要说的是如何查看 JVM 中已经设置的参数,包括显示参数和隐式参数。 打印显式参数 XX:+PrintVMOptions 该参数表示程序运行时,打印虚拟机接受到的命令行显式参数。我们用下面的命令运行程序: 输出结果: 可以看到我们设置了 和`+PrintVMOptions`两个参数,最后运行时也阅读全文
posted @ 2018-12-10 20:16 陈树义 阅读(151) 评论(0) 编辑
摘要: 说到 Java 虚拟机,不得不提的就是 Java 虚拟机的 GC(Garbage Collection)日志。而对于 GC 日志,我们不仅要学会看懂,而且要学会如何设置对应的 GC 日志参数。今天就让我们来学习一下 Java 虚拟机中所有与 GC 日志有关的参数。相信掌握了这些参数之后,对于大家线上阅读全文
posted @ 2018-12-10 20:16 陈树义 阅读(10) 评论(0) 编辑
摘要: 我们都知道 JVM 在启动的时候会去加载类信息,那么我们怎么得知他加载了哪些类,又卸载了哪些类呢?我们这一节就来介绍四个 JVM 参数,使用它们我们就可以清晰地知道 JVM 的类加载信息。 为了方便演示,我们使用下面的程序作为本次的演示程序。 跟踪类的加载和卸载 verbose:class 我们使用阅读全文
posted @ 2018-12-10 20:16 陈树义 阅读(9) 评论(0) 编辑
摘要: JVM 中最重要的一部分就是堆空间了,基本上大多数的线上 JVM 问题都是因为堆空间造成的 OutOfMemoryError。因此掌握 JVM 关于堆空间的参数配置对于排查线上问题非常重要。 tips:本文所有配置,如无特别说明,均基于JDK1.8。 堆配置 我们使用 Xms 设置堆的初始空间大小,阅读全文
posted @ 2018-12-10 10:11 陈树义 阅读(152) 评论(4) 编辑
摘要: 我们经常会听到许多垃圾回收的术语,例如: Minor GC、Major GC、Young GC、Old GC、Full GC、Stop The World 等。但这些 GC 术语到底指的是什么,它们之间的区别到底是什么?今天我们就来详细说说。 Minor GC 从年轻代空间回收内存被称为 Minor阅读全文
posted @ 2018-12-10 10:10 陈树义 阅读(132) 评论(0) 编辑
摘要: 前面文章中,我们介绍了 Java 虚拟机的内存结构,Java 虚拟机的垃圾回收机制,那么这篇文章我们说说具体执行垃圾回收的垃圾回收器。 总的来说,Java 虚拟机的垃圾回收器可以分为四大类别: 串行回收器、并行回收器、CMS 回收器、G1 回收器。 串行回收器 串行回收器是指使用单线程进行垃圾回收的阅读全文
posted @ 2018-11-22 09:10 陈树义 阅读(219) 评论(1) 编辑
摘要: 在第 6 讲中我们说到 Java 虚拟机的内存结构,提到了这部分的规范其实是由《Java 虚拟机规范》指定的,每个 Java 虚拟机可能都有不同的实现。其实涉及到 Java 虚拟机的内存,就不得不谈到 Java 虚拟机的垃圾回收机制。因为内存总是有限的,我们需要一个机制来不断地回收废弃的内存,从而实阅读全文
posted @ 2018-11-21 10:03 陈树义 阅读(242) 评论(0) 编辑
摘要: 当 Java 虚拟机将 Java 源码编译为字节码之后,虚拟机便可以将字节码读取进内存,从而进行解析、运行等整个过程,这个过程我们叫:Java 虚拟机的类加载机制。JVM 虚拟机执行 class 字节码的过程可以分为七个阶段: 加载、验证、准备、解析、初始化、使用、卸载。 在开始聊之前,先给大家看一阅读全文
posted @ 2018-11-20 09:41 陈树义 阅读(147) 评论(0) 编辑
摘要: 看到这里,我相信大家对于一个 Java 源文件是如何变成字节码文件,以及字节码文件的含义已经非常清楚了。那么接下来就是让 Java 虚拟机运行字节码文件,从而得出我们最终想要的结果了。在这个过程中,Java 虚拟机会加载字节码文件,将其存入 Java 虚拟机的内存空间中,之后进行一系列的初始化动作,阅读全文
posted @ 2018-11-16 10:50 陈树义 阅读(327) 评论(0) 编辑