随笔分类 -  JVM

摘要:异常表 代码一: 编译代码一,然后利用javap进行反编译查看结果: 因为我们讨论是异常表,所以我只贴处test方法的code attribute的部分内容。 首先看第一行: ,`stack=3 locals=4 args_size=1 InputStream ServerSocket`,共有2个局 阅读全文
posted @ 2019-12-05 18:32 夜的那种黑丶 阅读(440) 评论(0) 推荐(0)
摘要:Java字节码文件查看 我们有一个类Test01,具体内容如下: 编译这个类,得到Test01.class文件 IDE查看 用IDEA编译器查看 我们发现查看到的class文件与类文件基本相同,这是因为IDE自带的 Fernflower decompiler 将字节码文件反编译的结果。我们可以在插件 阅读全文
posted @ 2019-12-04 13:14 夜的那种黑丶 阅读(1490) 评论(1) 推荐(4)
摘要:自定义系统类加载器 ClassLoader.getSystemClassLoader()方法详解 方法说明 返回用于委托的系统类加载器,它是新建ClassLoader实例的默认的委托双亲,通常也是启动应用的类加载器。 这个方法在运行启动期间很早的时候就被调用,在调用时首先会创建系统加载器,而且会将其 阅读全文
posted @ 2019-12-03 20:48 夜的那种黑丶 阅读(1472) 评论(2) 推荐(0)
摘要:本博客将沿用 "上篇博客" 中展示的自定义类加载器代码 复杂类加载情况分析 测试代码一 首先,新建一个类Test14,重写默认的构造方法,打印加载该类的类加载器 然后,在新建一个类Test15,同样重写默认的构造方法,打印加载该类的类加载器,在构造方法中new出Test14的实例 测试代码 猜测一下 阅读全文
posted @ 2019-11-23 14:07 夜的那种黑丶 阅读(1006) 评论(0) 推荐(3)
摘要:获得ClassLoader的途径 获得当前类的ClassLoader 获得当前线程上下文的ClassLoader 获得系统的ClassLoader 获得调用者的ClassLoader ClassLoader源码解析 概述 类加载器是用于加载类的对象,ClassLoader是一个抽象类。如果我们给定了 阅读全文
posted @ 2019-11-22 19:49 夜的那种黑丶 阅读(2120) 评论(0) 推荐(2)
摘要:类的加载、连接与初始化 概述 在Java代码中,类型的加载、连接与初始化过程都是在程序运行期间完成的 类型:可以理解为一个class 加载:查找并加载类的二进制数据,最常见的情况是将已经编译完成的类的class文件从磁盘加载到内存中 连接:确定类型与类型之间的关系,对于字节码的相关处理 验证:确保被 阅读全文
posted @ 2019-11-21 19:40 夜的那种黑丶 阅读(1124) 评论(1) 推荐(4)