Java动态代理:JDK 和CGLIBJavassistASM之间的差别 (详细)
Posted 记忆力不好
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java动态代理:JDK 和CGLIBJavassistASM之间的差别 (详细)相关的知识,希望对你有一定的参考价值。
class文件简介及加载
Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成对应的 Class对象:
class字节码文件是根据JVM虚拟机规范中规定的字节码组织规则生成的、具体class文件是怎样组织类信息的,可以参考 此博文:深入理解Java Class文件格式系列。或者是Java虚拟机规范。
下面通过一段代码演示手动加载 class文件字节码到系统内,转换成class对象,然后再实例化的过程:
a. 定义一个 Programmer类: