21.2 代码块
/*
* 代码块:即{}
* 局部代码块:存在于方法中,控制变量的生命周期(作用域)
*构造代码块:提取构造方法中的共性,每次创建对象都会去执行,并且执行顺序比构造方法优先
*静态代码块:随着类的加载而加载,只加载一次,加载类时需要做的一些初始化,比如加载驱动(有static的特性:被所有对象共享,静态所修饰的成员加载优先于对象,随着类的加载而加载)
*无参和有参之间没有先后顺序,根据调用顺序执行
* */
package day21_static.代码块; public class BlockDemo { public static void main(String[] args) { { System.out.println("局部代码块"); } Teacher t = new Teacher("xiao",12); Teacher t2 = new Teacher(); } } class Teacher { String name; int age; { System.out.println("构造代码块,存在于构造方法中"); } static { System.out.println("静态代码块,加 static."); } public Teacher() { System.out.println("无参构造"); } public Teacher(String name,int age) { System.out.println("有参"); } }
输出如下
main:局部--有参(静态代码块--代码块--有参)--无参(静态代码块只执行一次--代码块--无参)