![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JVM
日常学习笔记
ProMan_XY
这个作者很懒,什么都没留下…
展开
-
JVM全局导图(第一版)
原创 2020-06-25 14:40:55 · 9965 阅读 · 3 评论 -
JVM字节码指令
字节码指令JVM字节码指令由一个字节长度,包含着特定含义的数值(操作码)以及跟随其后的零至多个操作所需参数(操作数)所构成;大多数字节码指令只有一个操作码,没有操作数,一般都是将操作所需参数存入操作数栈中;字节码指令中有部分指令与数据类型相关联,比如iload/fload,将一个int/float类型的数据加载到操作数栈中;字节码指令这块儿不算是虚拟机的重点,但是也有必要了解一些,下文会提到字节码指令的部分应用,以及部分指令;个人认为把字节码指令之前的Class类文件学好比较重要,不过近原创 2020-05-12 14:43:23 · 10098 阅读 · 1 评论 -
JVM类加载器
类加载器机制加载阶段需要虚拟机做的第一件事“通过类的全限定名,获取该类的二进制字节流”实现这个动作的代码被称为类加载器(Class Loader) 粗略可分为两部分: 启动类加载器(BootStrap Class Loader):由C实现,属于虚拟机内部的一部分 其他类加载器:都由Java实现,独立于虚拟机外部,统统继承自java.lang.ClassLoader抽象类 详细划分...原创 2020-04-24 18:00:35 · 10152 阅读 · 0 评论 -
JVM 类的加载全过程
加载阶段加载阶段需要虚拟机做三件事: 虚拟机通过一个类的全限定名来获取描述定义它的二进制字节流 将其字节流的静态存储结构转换为方法区的运行时数据结构 在堆中生成一个对应着该类的java.lang.Class对象作为程序访问方法区中该类型的访问入口 数组类型与非数组类型在加载阶段有所区别 非数组类型加载阶段比较自由,既可以使用虚拟机内置的引导类加载器也可以使用自定义的类加载器。...原创 2020-04-24 15:06:42 · 9972 阅读 · 0 评论 -
JVM--Class类文件
Class类文件:Class类文件是以一组8个字节为基础单位的二进制字节流 各个数据项目按照顺序整齐的排列于文件中,中间没有任何分隔符,每个数据项都是运行时必要数据,不允许修改 如果遇到需要8个字节以上的数据项需要存储时,则会按高位在前的方式将其划分成若干个8字节进行存储 Class类文件采用C语言结构体的伪结构来存储数据,伪结构共有两种数据类型:无符号数,表 无符号数:属于基本的数据...原创 2020-04-03 17:56:49 · 9966 阅读 · 0 评论 -
JVM类加载时机
类加载过程简述:Java虚拟机把描述类的内容从class文件中加载到虚拟机内存中,对其校验、转换解析、初始化。最终形成可以被虚拟机直接使用的java类型,此过程成为虚拟机的类加载过程类加载时机类的生命周期:虚拟机中类的生命周期从被加载到虚拟机内存中开始,卸载出内存为止。总共包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。其中验证、准备、解析三阶段被称为连接阶段...原创 2020-03-27 22:42:10 · 9957 阅读 · 0 评论 -
JVM符号引用与直接引用
符号引用:符号引用是以一组符号来描述所引用的目标,符号中的字面量可以是任何形式的,只要可以无歧义的定位到目标即可。符号引用与虚拟机实现的内存布局是无关的。各个不同的虚拟机实现的内存布局可以是不一样的,但是所能接受的符号引用的形式必须是一致的。因为符号引用中的字面量形式由java虚拟机规范中的class文件格式确定。直接引用:直接引用可以直接指向目标的指针、相对偏移量或者一个能间接访问到...原创 2020-03-27 20:11:38 · 10157 阅读 · 0 评论 -
JVM基础故障处理工具
常用命令:Jps (虚拟机进程状况工具) 查看系统内所有HotSpot虚拟机进程号 常用方 式:jps -lv 输出主类名及启动JVM参数 Jstat (虚拟机统计信息监视工具) 收集虚拟机各参数:如finalize情况及GC情况等 常用方式:jstat <jps 获取到的参数> -gcutil 每隔多少秒一次 一共多少次 Jinfo (Java配置信息工...原创 2020-03-07 17:17:56 · 10053 阅读 · 3 评论