代码块有:普通块、构造块、静态块、同步块等等,本文着重介绍前三种。

  • 普通块:限制局部变量的作用范围

    public void a(){
        {
            System.out.println("这是普通块");
            int num = 10;
            System.out.println(num);
        }
        // System.out.println(num);
    }
    
  • 构造块:处于方法外

    public class Test {
        public static void b(){
            System.out.println("------b");
        }
        {
            System.out.println("------这是构造块");
        }
    }
    
  • 静态块:在静态块中只能访问静态属性和静态方法

    public class Test {
        int a;
        static int sa;
        public static void b(){
            System.out.println("------b");
        }
        static{
            System.out.println("-----这是静态块");
            System.out.println(sa);
            b();
        }
    }
    

代码执行时,最先执行静态块,只在类加载的时候执行一次,所以一般写项目时创建工厂、数据库的初始化信息都放入静态块,用于执行一些全局性的初始化操作;之后执行构造块(不常用);再执行构造器;最后执行方法中的普通块。