Java——静态代码块,实例初始化方法和非静态代码块,类初始化方法

  1. 非静态代码块
    (1)声明:
    【修饰符】 class 类名{
    {
    非静态代码块;
    }
    }
    (2)代码的执行:
    1.在每次创建对象的时候都会执行;
    2.比构造器先执行
  2. 实例初始化
    (1)<init>(【形参】){
    }
    (2)实例初始化的代码包括:
    1.为成员变量显示赋值;
    2.执行非静态代码块;
    3.执行构造器
    其中1和2按顺序执行,3一定是最后执行
    (3)当创建对象,调用对应的构造器时,其实执行的是对应的实例初始化方法
  3. 静态代码块
    (1)声明
    【修饰符】 class 类名{
    static{
    静态代码块;
    }
    }
    (2)代码的执行:
    1.每一个类的静态代码块只执行一次;
    2.静态代码块在第一次使用这个类之前执行(类初始化时)
  4. 类初始化
    (1)<clinit>(【形参】){
    }
    (2)类初始化的代码包括:
    1.静态变量的显式赋值
    2.静态代码块
    其中1和2按顺序执行
    虚拟机会保证一个类的方法在多线程环境中被正确加锁和同步,即每一个类在内存中都只有唯一的一个Class对象
  5. 父子类中实例初始化和类初始化的执行顺序
    1.父类类初始化(静态方法不能被重写,不需考虑重写)
    2.子类类初始化
    3.父类实例初始化(考虑重写)
    4.子类实例初始化
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值