zoukankan      html  css  js  c++  java
  • java类加载过程

    系统会通过加载,连接,初始化三个步骤来对该类进行初始化操作:
    ①类的加载:
    类加载时指将类的class文件(字节码文件)载入内存中,并为之创建一个java.lang.Class对象,我们称之为字节码对象.
    类的加载过程由类加载器(ClassLoader)完成,类加载器通常由JVM提供,我们称之为系统类加载器,我们也可以继承ClassLoader类来提供自定义类加载器.
    不同的类加载器可以实现加载本地字节码文件,jar包中的字节码,通过网络加载字节码等.
    ②类的连接:
    当类被加载进内存之后,系统为之生产一个对应的Class对象,接着把类的二进制数据合并到JRE中.
       1>:验证:检测被加载的类是否有正确的内部结构.
       2>:准备:负责为类的static变量分配内存,并设置默认值.
       3>:解析:把类的二进制数据中的符号引用(变量)替换为直接引用(深入分析JVM).
    ③类的初始化:
    在此阶段,JVM负责对类进行初始化,主要对static变量进行初始化. 类的初始化一个类包含几个步骤:
      1>:如果该类还未被加载和连接,则程序先加载并连接该类.
      2>:如果该类的直接父类还未被初始化,则先初始化其父类.
      3>:如果类中有初始化语句(静态代码块),则系统依次执行这些初始化语句.
  • 相关阅读:
    1142
    dbms_monitor开启/关闭会话跟踪
    mysql密码过期问题
    zabbix监控mysql
    12C -- ORA-65048 ORA-65048
    idea的快捷键
    IntelliJ IDEA的配置优化
    IDEA环境设置
    Java 中int、String的类型转换
    js数组去重
  • 原文地址:https://www.cnblogs.com/tinyj/p/10130243.html
Copyright © 2011-2022 走看看