常见的代码块相比大家都比较熟悉,但是运用也是需要技巧的,希望给大家分享
一.代码块
{} 表示就是代码块 代码块根据位置不同和声明可分为 :静态代码块 构造代码块 局部代码块 同步代码块
下面介绍各代码块
1.局部代码块
位置处于方法中 限定生命周期,及早释放内存,提高内存的利用率
2.构造代码块
类中方法外
多个构造方法相同代码存放在一起,每次都会调用构造方法都会执行,且在构造方法前执行
3.静态代码块 【常用】
在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次
一般用于加载驱动
4.同步代码块:
使用synchronized(){}包裹起来的代码块,在多线程环境下,对共享数据的读写操作是需要互斥进行的,否则会导致数据的不一致性。同步代码块需要写在方法中。
总结:
1.静态代码块和构造代码块的异同点
相同点:都是在加载构造函数前执行 可以在类中定义多个,使用场景一般是为一些static 变量进行赋值
不同点:静态代码块要在非代码块前执行 静态代码块 在new 时会执行一次,之后不会再执行, 而非静态代码块每new 一次执行一次
执行顺序:(重点)
静态块总是最先执行的,并且只有在创建该类的第一个实例的时候才会执行一次;第二执行的是构造块;第三执行的是构造方法。