java类在什么情况下被加载

本文探讨了Java中类的静态变量加载时机及其对类初始化的影响。特别关注静态最终基本类型变量和其他静态变量的区别,以及它们如何触发类的加载过程。
public class test2 {
    public static void main(String[] args) {
        System.out.println(test4.a);//类没有被加载
        System.out.println(test4.b);//类被加载
        System.out.println(test4.c);//类被加载
        System.out.println(test4.d);//类被加载
        System.out.println(test4.e);//类被加载
        System.out.println(test4.o);//类被加载
    }
}
public class test4 {
    static {
        System.out.println("test4 init");
    }
    public static final int a=1;
    public static int b=2;
    public static final Integer c=new Integer(3);
    public static Integer d=new Integer(4);
    public static final Integer e=5;
     static final Object o=new Object();
}

当调用类的静态最终基本类型变量的时候,不会进行类的初始化,其他情况都会对类进行初始化.

public class test4 {
public static final class f{
         public static final int g=5;
         public static final Integer h=5;
         static int a=3;
         static Object object=new Object();
     }
}

当内部类被static final 修饰时,读取内部类中的静态数据都不会引发外部类的初始化.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值