代码块分为3中情况。
1,普通代码块
这是平常写代码的时候最常见的,也是我们最熟悉,它通常出现在方法和语句的代码块中。
2,构造代码块
构造代码块,是直接写在类中的代码块。它优于构造方法执行,还有值得提醒的一点是每次对象实例化之前都要运行构造代码块。
3,静态代码块
其实质是用Static关键字修饰的构造代码块,它先于主方法执行,在构造代码块之前运行,且和构造代码块不同,无论实例化多少次对象
都只执行一次。
贴个代码让我们更加有一个清晰的认识
- package reviewDemo;
- /**
- * 测试各代码块的优先级
- * 优先级顺序:静态代码块 > 构造代码块 > 普通代码块
- * 备注:无论创建几个对象,静态代码块只执行一次!
- */
- public class Demo13 {
- Demo13(){
- System.out.println("我是构造方法!");
- }
- {
- System.out.println("我是构造代码块!");//实例化对象的时候才会去调用!
- }
- static{
- System.out.println("我是静态代码块!");
- }
-
- public static void main(String[] args) {
- new Demo13();
- new Demo13();//再次创建对象,证明无论创建几次对象,静态代码块都只执行一次
- System.out.println("我是普通代码块!");
- }
- }
复制代码
运行的结果是:
我是静态代码块!
我是构造代码块!
我是构造方法!
我是构造代码块!
我是构造方法!
我是普通代码块!
|
|