【说站】java类加载器的常用方法
2024-11-28
23
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电脑。
更新于:9天前赞一波!2
相关文章
- 【说站】python socket连接客户端的方法
- JavaScript中字典的常用操作
- 【说站】js中every方法怎么用?
- 【说站】js some方法是什么
- 【说站】java io和nio的区别
- 【说站】java枚举类型的原理
- 【说站】java静态方法和非静态方法的介绍
- 【说站】java单例模式中的Holder是什么
- 【说站】java单例中饿汉模式的使用
- 【说站】Java反序列化如何理解
- 【说站】java懒汉和饿汉模式的区别
- 【说站】Java序列化是什么
- 【说站】java单例中的饱汉模式实现
- 【说站】JavaScript数组有哪些遍历方法
- 【说站】python静态方法如何定义
- 【说站】python特殊方法有哪些
- 【说站】java中&和&&有什么区别
- 【说站】python类方法如何定义
- 【说站】python用circle函数画兔子的方法
- 【说站】css设置行间距的方法
文章评论
评论问答