• 技术文章 >java >java基础

    java类加载器的常用方法

    小妮浅浅小妮浅浅2021-07-27 09:18:19原创4022

    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电脑。

    专题推荐:java类加载器
    品易云
    上一篇:java如何在表格添加水印 下一篇:java中&和&&有什么区别

    相关文章推荐

    • python怎么调用java类• java类实现日期的时间差• 如何获取java类中的字段修饰符?• java类加载器如何理解?• java类变量是什么?• java类中的两种成员访问

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网