• 技术文章 >java >java基础

    java类加载器如何理解?

    小妮浅浅小妮浅浅2021-05-11 09:23:50原创2512

    本教程操作环境:windows7系统、java10版,DELL G3电脑。

    1、类加载器概念

    类加载器,用来加载 Java 类到 Java 虚拟机中 , 一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件) , 类加载器,负责读取 Java 字节代码,并转换成 java.lang.Class 类的一个实例

    2、发生的时期

    (1)遇到 new、getstatic、putstatic、invokestatic 这四条字节码指令时,如果类还没进行初始化,则需要先触发其初始化。

    (2)使用 java.lang.reflect 包的方法对类进行反射调用的时候,如果类还没进行初始化,则需要先触发其初始化。

    (3)当初始化了一个类的时候,如果发现其父类还没进行初始化,则需要先触发其父类的初始化。

    (4)当虚拟机启动时,用户需要指定一个执行的主类,即调用其 #main(String[] args) 方法,虚拟机则会先初始化该主类。

    (5)当使用 JDK7 的动态语言支持时,如果一个 java.lang.invoke.MethodHandle 实例最后的解析结果为 REF_getStatic、REF_putStatic、REF_invokeStatic 的方法句柄,并且这个方法句柄所对应的类没有进行过初始化,则需要先触发其初始化。

    3、加载Class 的方式

    (1)加载,是找到 .class 文件并把这个文件包含的字节码加载到内存中。

    (2)连接,又可以分为三个步骤,分别是字节码验证、Class 类数据结构分析及相应的内存分配、最后的符号表的解析。

    (3)Initialization(类中静态属性和初始化赋值),以及Using(静态块的执行)等。

    以上就是java类加载器的理解,希望能对大家有所帮助。更多Java学习指路:Java基础

    专题推荐:java类加载器
    上一篇:java对象创建过程是什么 下一篇:Java中IO流复制文件的方法

    相关文章推荐

    • java中valueOf方法如何使用?• java中ordinal有什么用?• java反射生成对象的方法• java如何访问成员变量• java使用ParameterizedType实现泛型• java对象创建过程是什么

    全部评论我要评论

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

  • 取消发布评论
  • 

    Python学习网