【说站】java类加载器的常用方法
2024-11-28
17
java类加载器的常用方法
1、loadClass,当类加载请求到来时,首先从缓存中找到类对象。
如果有直接返回,如果没有,交给这种加载的父加载器加载。如果没有父加载,交给顶级启动加载器加载。如果最后还是找不到,用findClass()加载;
2、FindClass
按名称或位置加载Class字节码,然后使用defineClass通常由子类实现,如果需要定制ClassLoader,则必须重写该方法。
3、defineClass
defineClass()方法是将byte字节流解析为JVM能够识别的Class对象(ClassLoader中已经实现了该方法逻辑),该方法不仅可以通过class文件实例化class对象,还可以通过其他方法实例化class对象,例如,通过网络接收一类字节码,然后转换为byte字节流来创建相应的Class对象,而defineClass()方法通常与findClass()方法一起使用,通常在自定义类加载器时,会直接覆盖Classloader的findClass()方法并编写加载规则,获得要加载类的字节码后转换为流,然后调用defineClass()方法生成类的Class对象,简单地说就是将classs文件转换为Classs对象。
4、resolveClass使用类Class对象创建完成也可以同时解析。
之前我们说链接阶段主要是对字节码进行验证,分配存储器,设置类变量,同时将字节码文件中的符号引用转换为直接引用。
以上就是java类加载器的常用方法,希望对大家有所帮助。更多Java学习指路:java教程
本教程操作环境:windows7系统、java10版,DELL G3电脑。
更新于:5天前赞一波!2
相关文章
- 【说站】python静态方法如何定义
- 【说站】python特殊方法有哪些
- 【说站】java中&和&&有什么区别
- 【说站】python类方法如何定义
- 【说站】python用circle函数画兔子的方法
- 【说站】css设置行间距的方法
- 【说站】php PDO运行查询的方法
- 【说站】java如何在表格添加水印
- 【说站】java如何重写findClass方法
- 【说站】css如何使用scale()方法进行缩放
- 【说站】css设置行间距的三种方法
- 【说站】css点击元素变更颜色的方法
- 【说站】php构造方法__construct()是什么
- 【说站】python判断变量的方法对比
- 【说站】python定义数值类型变量的方法
- 【说站】java类中的两种成员访问
- 【说站】java switch语句的执行过程
- 【说站】java ThreadLocal的创建和访问
- 【说站】java this关键字的使用注意
- 【说站】Python threading模块的常用方法
文章评论
评论问答