代码块
1.代码块概念以及分类
使用 {} 定义的一段代码称为代码块。根据代码块定义的位置以及关键字,又可分为以下四种:
1. 普通代码块
2. 构造块
3. 静态块
4. 同步代码块(深入学习再了解)
2.普通代码块
普通代码块:定义在方法中的代码块
执行结果 x1 = 10
x2 = 100
这种用法较少见
3.构造代码块
构造块:定义在类中的代码块(不加修饰符)。也叫:实例代码块。构造代码块一般用于初始化实例成员变量。
4.静态代码块
使用static定义的代码块称为静态代码块。一般用于初始化静态成员变量。
public class Student{
private String name;
private String gender;
private int age;
private double score;
private static String classRoom;
//实例代码块
{
this.name = "小明";
this.age = 12;
this.gender = "man";
System.out.println("I am instance init()!");
}
// 静态代码块
static {
classRoom = "101";
System.out.println("I am static init()!");
}
public Student(){
System.out.println("I am Student init()!");
}
public static void main(String[] args) {
Student s1 = new Student();
Student s2 = new Student();
}
}
5.注意事项
静态代码块不管生成多少个对象,其只会执行一次 静态成员变量是类的属性,因此是在JVM加载类时开辟空间并初始化的
如果一个类中包含多个静态代码块,在编译代码时,编译器会按照定义的先后次序依次执行(合并)
实例代码块只有在创建对象时才会执行
执行顺序:静态代码块-》构造块-》带参数的构造方法
执行顺序例如:
创建多个对象时静态代码块只会执行一次
因为静态代码块是类的属性是且类被加载时执行的,类只加载一次
当有两个静态加载时按照先后顺序执行
例如
第二种