2018-07-09 代码块{}

代码块

在java中,使用{}括起来的代码被称为 代码块
根据其位置和声明的不同,可以分为:局部代码块,构造代码块,静态代码块,同步代码块(多线程)


局部代码块:局部位置,用于限定变量的生命周期

构造代码块:在类的成员变量位置,用{}括起来的代码,每次调用构造方法执行前,都会先执行构造代码块
作用:可以把多个构造方法中的共同代码放到一起,

静态代码块:在类的成员变量位置,用{}括起来的代码,只不过它用static修饰了
作用:一般对类进行初始化



 class Student {
     static {
         System.out.println("Student 静态代码块 1");
     }
     
     {
         System.out.println("Student 构造代码块 1");
     }
     
     Student() {
         System.out.println("Student 构造方法");
     }
     
     static {
         System.out.println("Student 静态代码块 2");
     }
     
     {
         System.out.println("Student 构造代码块 2");
     }
 }
 
 class StudentDemo {
     static {
         System.out.println("StudentDemo 静态代码块");
     }
     
     public static void main(String[] args) {
         System.out.println("我是Main方法");
         
         Student s1 = new Student();
         Student s2 = new Student();
     }
 }

执行结果:

StudentDemo 静态代码块
我是Main方法
Student 静态代码块 1
Student 静态代码块 2
Student 构造代码块 1
Student 构造代码块 2
Student 构造方法
Student 构造代码块 1
Student 构造代码块 2
Student 构造方法
  • 面试题:
  • 静态代码块,构造代码块,构造方法 他们三者执行顺序?
  • 1静态代码块 -- 2构造代码块 -- 3构造方法
  • 静态代码块:只执行一次,加载Class时候执行。
  • 构造代码块:每次调用构造方法前都执行

你可能感兴趣的:(2018-07-09 代码块{})