java基础系列之代码块

在java中,有四种代码块供我们使用:

  1. 普通代码块
    这是使用一对花括号扩起来的代码段.不过,出现在方法中为普通代码块,通常用来,划分变量作用范围。 如:
void exec() {

        {
            int a = 0 ;
        }
        {
            int a = 2 ;
        }
    }
  1. 静态代码块
    使用static关键字和一对花括号标识的一段代码,如:
    static {
        System.out.println("static exec.");
    }
  1. 构造代码块
    就是直接出现在类中的普通代码块.一般用来实例化对象自动执行之需要,普通代码块则是被动调用所在方法的时候执行.
   {
        //
//        c3 = new C3() ;
        System.out.println("constructor init.");
    }
  1. 同步代码块
    使用synchronized关键字和一对花括号标识的一段代码,不过同步代码块和普通代码块一样也只能出现方法中,如:
    void exec() {
        synchronized(this) {
            //
            System.out.println("synchronized .");
        }
    }

以上四种代码块,执行顺序描述如下:

  1. 普通代码块,是被动执行的,调用其所在方法则执行。其执行次数和其方法执行一致.
  2. 静态代码块,是在所在类加载的时候自动执行的。并且第一次加载所在类到该类第二次被加载之间只会执行一次,因为类加载是互斥的,一个类不能同时被加载多次。
  3. 构造代码块,只会在该类对象实例化的时候被执行。且会多次执行。
  4. 同步代码块,多用于多线程共享资源处理上。调用时间和次数和普通代码快类似。

你可能感兴趣的:(java基础系列之代码块)