![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
_躬行_
c++/java/python,用分析数据来挣钱
展开
-
深入理解JVM(一) JVM是做什么的
JVM, 全称Java Virtual Machine,即Java虚拟机,是Java程序编译和运行的地方。 我们写跨平台的程序,都希望能够一次编写到处运行。机器只能运行二进制码,因而就要有一种机制将程序译成二进制。常见的高级语言通常有两种途径实现: 一种是编译器层面,由编译器直接译成机器码,机器码可直接执行; 另外一种软件层面,将软件编译成字节码,运行时再由...原创 2019-04-10 18:32:55 · 1125 阅读 · 0 评论 -
深入理解JVM(二) JVM的运行时数据区
一、 JVM运行时数据区的组成JDK < 1.8 时运行时数据区的组成运行时数据区包括JVM堆、 JVM栈、方法区、本地方法栈和程序计数器。 下面具体说明各个区的作用。1. 程序计数器 每个线程启动的时候都会创建一个程序计数器,用来保存当前正在执行的JVM指令的地址,程序计数器归该线程私有 。 程序计数器可以看做一个指向字节码指令的行号指示器,字节码解释器...原创 2019-04-19 18:46:29 · 496 阅读 · 0 评论 -
深入理解JVM(三) JVM的内存分配与回收策略
1.JVM中堆内存的分代管理(<1.8版本)JVM的对象实例存放在堆内存中,根据对象存活时间不同分成了不同的代来进行管理。为什么要分成不同的代呢?因为有相当一部分存活时间较短的对象很快就会被回收,而另外一些使用时间较长,如果将它们放到同一个区域,每次回收都需要对所有的对象进行遍历,浪费的时间较多。将它们根据存活时间不同分为不同的区,方便根据不同的需要使用不同的回收算法,提高回...原创 2019-06-24 23:21:17 · 278 阅读 · 0 评论 -
深入理解JVM(四) 垃圾回收算法与垃圾回收器
0. Java的引用 Java中的引用按照强度分为4种: 强引用 (StrongReference) 类似 Object obj = new Object(); 只要强引用存在,系统就不会回收被引用的对象; 软引用 (SoftReference) 有用但非必须的对象。对于软引用的对象,在系统将要发生内存溢出前,会把这些对象列入回收范围进行二次回...原创 2019-06-27 01:53:19 · 320 阅读 · 0 评论 -
(转)一次 JVM FullGC 的排查过程及解决方案
转自 石杉的架构笔记 一篇不错的JVM FullGC定位分析问题产生最近新上线的系统偶尔会报FullGC时间过长(>1s)的告警,查看GC日志,如下图所示:看到GC日志,我第一时间关注到的不是GC耗时,而是GC触发的原因:Metadata GC Threshold也就是 FullGC 触发的原因是因为Metaspace大小达到了GC阈值。在监控系统里面看了一下Meta...转载 2019-06-17 01:17:25 · 438 阅读 · 0 评论