随笔分类 - 源码 / JVM常识
JVM常识
摘要:1 前言 这节我们来实际的用一用JVM平时常用的调优命令,来实际体验回顾一下。这里我直接用的是我们生产环境的一个Pod里,来真实的带大家体验一下。 2 jps jps大家应该都知道吧,就是列出当前的java进程有哪些: 3 jmap 3.1 jmap ‐histo 此命令可以用来查看内存信息,实例个
阅读全文
摘要:Java HotSpot VM中 -XX: 的可配置参数列表进行描述;这些参数可以被松散的聚合成三类: 行为参数(Behavioral Options):用于改变jvm的一些基础行为; 性能调优(Performance Tuning):用于jvm的性能调优; 调试参数(Debugging Optio
阅读全文
摘要:1 前言 了解了JVM的结构、运行时数据区的组成部分,继而了解一下JVM的一些常用配置参数。 2 参数分类以及常用命令 在Java虚拟机的参数中,有3种表示方法: 标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证
阅读全文
摘要:1 前言 JVM的内存模型,想必大概都清楚了,可以看之前的文章,有讲解。那么JVM每个内存模型里都存哪些内容呢,本文来追一下。 2 内存模块存储内容 运行时数据区大概分5部分,方法区、堆、程序计数器、本地方法栈、虚拟机栈。 虚拟机栈也叫线程栈,是运行时的单位,解决程序运行时的逻辑控制;堆是存储的单位
阅读全文
摘要:1 前言 讲多了Class文件、类加载过程,我们的Class文件就要进到JVM内存里了,那就先来了解下JVM内存模型都进行了哪些演变。 主要演变的就是:1.7、1.8 都是对方法区中的改变 概念的统一:我看一些文章说方法区、有永久代、有元空间这三者的关系是什么呢 (1)方法区可以看作是JVM逻辑上管
阅读全文
摘要:1 前言 Class文件了解过了,那么接下来就要看JVM表演了。 JVM,在Java语言可以说是重中之重的存在,没有它Java程序是跑不起来的,Java的一次编译多次运行,也更离不开JVM的存在。 2 JVM整体结构 对于JVM存在很多的版本比如:HotSpot、早期的Sun ClassicVM、J
阅读全文
摘要:1 前言 JVM的入口数据就是每一个Class文件,我们上一篇,仔细分析了Class文件中的每个字节所代表的含义,那么它是如何加载进JVM的,这一篇我们来讲解。 Class文件的解释运行时数据本质是C++对象,也叫做KClass对象,这些运行时数据在JDK7及之前放在永久代(PermGen),JDK
阅读全文
摘要:1 简介 Class文件是一组以字节为基础单位的二进制流。 JVM的数据入口就是我们平时代码编译后的Class文件,那么要搞懂JVM的原理之前,就要了解Class文件里边都是什么,才能更好的理解JVM原理。 内容比较多,希望看到的小伙伴也能自己动手,边看边解析一个自己的Class文件,光看不操作其实
阅读全文