Java中的代码块

代码块:在Java中用{}括起来的代码叫代码块

根据其位置和声明的不同,可以分为:
1.局部代码块
在局部位置,用{}括起来的代码。用于限定变量生命空间的代码块,在这一部分中声明的变量的地址空间在运行完这部分代码后就会被释放。
2.构造代码块
在类中成员位置,用{}括起来的代码。初始化过程中在成员变量初始化之后初始化,每次执行构造方法前,都要先执行构造代码块。

作用:可以把多个构造方法中的共同代码放在一起,对对象进行初始化
3.静态代码块
在类中成员位置,用{}括起来的代码,和构造代码块的区别是用static修饰,在类被加载的时候就运行。

作用:对类进行初始化

静态代码块,构造代码块和构造方法的执行规则

1.执行顺序:静态代码块——构造代码块——构造方法代码块
2.静态代码块在类被加载的时候就被执行,对类进行初始化,需要注意的是静态代码块只执行一次,之后对同意类的调用,静态代码块不再执行。
3.构造代码块在构造方法被调用时先于构造方法执行,且每次调用构造方法,都要执行构造代码块。

/*
    运行先后分析:
        1:代码编译生成class文件,先对主类(即该类中引用了其他类,而不是按照先后顺序,即使这里class Code写在class CodeDemo前面,也是先对classDemo编译
        运行)进行编译。
        2:执行静态代码块:1995年3月
        3:执行主程序:1995年3月至9月
        4:Code cd1 = new Code();这里创建对象引入了class Code,先执行静态代码块:1996年1月。然后执行构造代码块:同年2月。最后执行构造方法:1998年。
        5:Code cd2 = new Code();这里第二次创建对象引入class Code,静态代码块只执行一次,这里不再执行。执行构造代码块,然后执行构造方法。


*/
class CodeDemo{
    static {
        System.out.println("1995年3月,黑桐干也在雪夜和两仪式(根源式,式的肉体人格)相遇。");
    }
    public static void main(String[] args){
        System.out.println("1995年3月至9月,黑桐和式入学同一所高中,两人相遇。————《杀人考察前》");
        Code cd1 = new Code();
        Code cd2 = new Code();
    }
}
class Code{
    static {
        System.out.println("1996年1月,两仪织在深夜散步时遇到了观布子之母,这段被放在了未来福音的最后,确实未来福音真正的起始点————《未来福音》");
    }
    {
        System.out.println("同年2月,两仪式遭遇了交通事故而昏迷不醒。————《杀人考察前》");
    }
    public Code(){
        System.out.println("1998年3月至5月,黑桐干也快速经历了高中毕业,大学入学,与橙子相遇,大学退学等事件。");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值