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。当初始化了一个类
如果他的父类没有被初始化
则会先初始化他的父类
再初始化它自己
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


