• 技术文章 >java >java基础

    java类加载的过程

    小妮浅浅小妮浅浅2021-08-05 11:04:46原创6391

    说明

    当程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过以下三个步骤对该类进行初始化。

    类加载步骤

    1、加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个代表这个类的 java.lang.Class 对象,作为方法区中类数据的访问入口。

    2、链接:将Java类的二进制代码合并到JVM的运行状态之中的过程。

    3、执行类构造器 <clinit>() 方法的过程。

    实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    public class ClassLoadingTest{

        public static void main (String [] args){

            System.out.println(test.m);

        }

    }

      

    class test{

        static {

            m = 300;

        }

        static int m = 100;

    }

    //第一步:加载

    //第二步:链接结束后m=0

    //第三步:初始化结束后,m的值由<clinit>()方法执行决定

    /*

    这个test构造器<clinit>()方法由类变量的赋值和静态代码块中的语句按照顺序合并产生,类似于

    <clinit>(){

    m = 300;

    m = 100;

    }

    */

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

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

    专题推荐:java类加载
    上一篇:java class实例代表哪些结构 下一篇:java反射如何调用指定的属性

    相关文章推荐

    • java中jni是什么• java多线程的作用• java线程锁死是什么• java中RMI的原理分析• java RabbitMQ消息队列是什么• java调用shell脚本的方法• java继承中有哪些注意点• java内存间交互规则• java中final域的内存语义理解• java枚举如何实现单例• java循环和递归的区别• java懒惰评估如何实现• java中Lamdba表达式的用法整理• java如何自定义函数式接口• java反射调用指定的属性• java中BigDecimal有哪些用法• java中BigDecimal的数学运算• BigDecimal值在java比较的两种方法• java SimpleDateFormat如何转换局部变量

    全部评论我要评论

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

  • 取消发布评论
  • 

    Python学习网