• 技术文章 >java >java基础

    java类加载的过程

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

    说明

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

    类加载步骤

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

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

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

    实例

    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学习网