对于Java开发而言,Java虚拟机是开发工作中必须要理解和掌握的知识内容,也是Java面试中面试官常会问到的考点。在本课程中,我将带你循序渐进的学习JVM:从源码到运行、类加载,再到内存分配和垃圾回收,以及JVM调优的技巧与实战。整个课程基于JDK13讲解,理论-实战-面试三结合,带你剖析整个JV ...
分类:
其他好文 时间:
2020-07-05 10:52:10
阅读次数:
83
jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下: jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数] 注意:这里使用的jdk版本是jdk8. 类加载统计: Loaded:加载class的数量 Bytes:所占用空间大小 Unloaded:未加载数 ...
分类:
Web程序 时间:
2020-07-05 00:56:45
阅读次数:
84
类的生命周期 加载-验证-准备-解析-初始化-使用-卸载 1 加载阶段 把.class二进制数据读到内存中,并放到方法区,然后在堆中创建一个Java.lang.Class对象,这个对象就是用来封装类在方法区的数据结构的。 所以,类加载机制的最终产物是:在堆中创建了java.lang.Class对象, ...
分类:
编程语言 时间:
2020-07-04 20:36:50
阅读次数:
69
JVM Structure JVM Architecture Life of JVM Loading ClassLoader public class ClassLoaderTest{ public static void main(String[] args){ // 系统类加载器 ClassLo ...
分类:
其他好文 时间:
2020-07-04 16:49:21
阅读次数:
77
0.首先了解一下maven安装目录 Bin:该目录包含Mvn运行的脚本 Boot:Maven自身的类加载器框架 Conf:包含非常重要的文件setting.xml Lib:该目录包含了所有Maven运行时需要的Jave类库 Mvn help:system(该命令会打印出所有的Java系统属性和环境变 ...
分类:
其他好文 时间:
2020-07-03 12:21:52
阅读次数:
321
3. 补充内容 3.1 在jvm中表示两个class对象是否为同一个类的两个必要条件 类的完整类名必须一致,包括包名。 加载这个类的ClassLoader(指ClassLoader实例对象)必须相同 | 换句话说,在jvm中,即使这两个类对象(class对象)来源同一个Class文件,被同一个虚拟机 ...
分类:
其他好文 时间:
2020-07-02 20:09:46
阅读次数:
48
类装载器子系统 1.1 什么是类装载子系统? 类装载器子系统负责从文件系统或者网络中加载Class文件,Class文件在文件开头有特定的文件标识(魔数)。 类装载器子系统(ClassLoader)只负责Class文件的加载,至于它是否可以运行,则由Execution Engine决定。 | 你妈妈[ ...
分类:
其他好文 时间:
2020-07-02 20:06:35
阅读次数:
54
2. 双亲委派机制 2.1 双亲委派机制工作原理 2.1.1 原理 Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存,生成class对象。 加载某个类的class文件时,Java虚拟机采用的是双亲委派模式,即把请求交由父类处理,它是一种 ...
分类:
其他好文 时间:
2020-07-02 19:55:16
阅读次数:
68
JVM class文件格式 魔法数 CAFE BABE 编译器版本号 Constant count Constant pool access flag this class super class interface count interfaces field count fields metho ...
分类:
其他好文 时间:
2020-07-01 20:22:12
阅读次数:
65
Java类加载机制 简介 类的加载: 将类的.class文件中的二进制数据读取到内存中,将其放在运行时数据区的方法区中,在堆内存中创建一个java.lang.Class对象,用来封装在方法区内的数据结构。 Class对象: 封装类在方法区内的数据结构,提供访问方法区的数据结构的接口。 注:不需要等到 ...
分类:
编程语言 时间:
2020-07-01 09:57:51
阅读次数:
72