![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
qq_24286273
一枚底层非科班小码农要逆袭 难如登天
展开
-
JVM学习笔记(6)之字节码文件剖析2
上一篇字节码文件剖析完了常量池表,接下去我们剖析字节码整体结构的剩下的内容,如下图所示 Java字节码整体结构剖析图 access_flags(访问标志),类型是u2,说明长度占据2个字节,数量是1 访问标志信息包括该Class文件是类还是接口,是否被定义成public,是否是abstract,如果是类,是否被声明成final。通过上面的源代码,我们知道该文件是类并且是public,下图是...原创 2019-11-07 19:49:34 · 103 阅读 · 0 评论 -
JVM学习笔记(5)之字节码文件剖析
使用javap -verbose命令分析一个字节码文件时,将会分析该字段的魔数、版本号、常量池、类信息、类的构造方法、类中的方法信息、类变量与成员变量等信息 魔数:所有的.class字节码文件的前4个字节都是魔数,魔数值为固定值:0xCAFEBABE 看一个简单的java文件MyTest1.java,如下: package com.zh.bytecode; /** * @a...原创 2019-11-06 23:11:05 · 93 阅读 · 0 评论 -
JVM学习笔记(4)之扩展类加载器
扩展类加载器加载目录 打印扩展类加载器目录 System.out.println(System.getProperty("java.ext.dirs")); 打印结果如下: D:\Java\jdk1.8.0_152\jre\lib\ext;C:\windows\Sun\Java\lib\ext 那么接下来我要做的一个操作是让扩展类加载去加载我们自己定义的类,所以执行的时候手动的去改变加载类目录,...原创 2019-10-26 15:54:30 · 160 阅读 · 0 评论 -
JVM学习笔记(3.X)之类加载器命名空间补充
JVM学习笔记(3.X)之类加载器命名空间补充 本篇是类加载器命名空间补充,只是记录一段奇怪的 代码,以此来加深对命名空间的理解,下面贴下代码及结果 MyPerson类 package com.zh.classloader; /** * @author Jack * @version 1.0 * @date 2019/10/24 23:27 */ public class MyPer...原创 2019-10-25 23:44:02 · 99 阅读 · 0 评论 -
JVM学习笔记(3)之命名空间
加载器命名空间 什么是加载器命名空间 每个类加载器都有自己的命名空间,命名空间由该加载器及所有父加载器所加载的类组成 在同一个命名空间中不会出现类的完整名字(类的包名+类名)相同的两个类 在不同的命名空间中,有可能会出现类的完整名字(类的包名+类名)相同的两个类 代码示例1 package com.zh.classloader; import java.io.ByteArrayO...原创 2019-10-22 15:10:01 · 120 阅读 · 0 评论 -
JVM学习笔记(2)之类加载器双亲委托机制实例
JVM学习笔记(2)之类加载器双亲委托机制实例 1、什么是类加载器的双亲委托机制 类的加载器分为三种,也可以自定义,分别为Bootstrap Class Loader(启动加载器)、Extensions Class Loader(扩展加载器)、Application Class Loader(系统(App)加载器) 启动加载器: 它用来加载Java的核心库(JAVA_HOME/jre/lib/...原创 2019-10-21 21:37:53 · 98 阅读 · 0 评论 -
JVM学习笔记(1)之ClassLoader
JVM学习笔记(1)之ClassLoader 1.JVM简介 JVM是伴随Java这门语言的诞生而存在的,Java的最大特点就是跨平台性,即我们常常说的一次编译,到处运行,这个特性其实就是JVM的功劳,JVM不仅仅是一个虚拟机,更是一种规范,所以任何符合JVM虚拟机规范的语言都可以跑在JVM中,包括Scala、Grooy、Kotlin等 2.JVM、JRE、JDK之间的关系 JDK: JDK(Ja...原创 2019-10-20 01:32:35 · 134 阅读 · 0 评论