java中类的加载顺序简介说明
下文笔者讲述java类的加载顺序简介说明,如下所示
java类加载顺序说明
1.加载 将.java文件加载到内存中 并将这些静态数据转换成方法区的运行时数据结构 生成某类对应的java.lang.class对象 注意事项: .class对象是 类加载到内存后由java自动生成的 2.链接 将加载的类的二进制代码 合并到JVM中 为静态static变量声明内存空间 并赋默认值(各种基本数据类型的默认值 int 是0 string是 ""等) 3.初始化 执行类的构造器(注意:不是对象的构造器) 为静态变量赋值 并执行静态代码块(静态代码块和静态变量赋值) (使用cinit方法 将静态变量、静态方法放到一起 然后一起赋值 运行)例
package com.reflection; import com.sun.org.apache.bcel.internal.generic.NEW; public class test03 { static { System.out.println("main类被加载"); } public static void main(String[] args) { Father father= new Father(); System.out.println(Father.a); } } class Father { static int a=100; static { a=10; System.out.println("father类被加载"); } static void test1(){ System.out.println("father类中的静态方法被调用"); } } -----运行以上代码,将输出以下信息------- main类被加载 father类被加载 10
类初始化的场景
1.当虚拟机启动 会先初始化main方法所在的类 2.new一个新的对象 3.调用类的静态成员和静态方法 4.对此类反射调用 5。当初始化了一个类 如果他的父类没有被初始化 则会先初始化他的父类 再初始化它自己
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。