局部块:定义在方法中,解决变量作用域(只能在块中使用),可快速释放内存
构造块:直接在类中定义代码块。构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。如果存在多个构造代码块,执行顺序由他们在代码中出现的次序决定,先出现先执行。
静态代码块:在类中使用static关键字声明的代码块。静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。如果类中包含多个静态代码块,那么将按照"先定义的代码先执行,后定义的代码后执行"。
package 四种代码块; public class test { private String name = "Bareth"; private static int age = 18; //构造块1 { System.out.println("这是第一个构造块——>name:" + name); f1(); } //构造块2 { System.out.println("这是第二个构造块——>age:" + age); f2(); } //静态块1 static { System.out.println("这是第一个静态块——>age:" + age);//只能调用静态成员和静态方法 f2(); } //静态块2 static { System.out.println("这是第一个静态块——age:" + age);//只能调用静态成员和静态方法 f2(); } public test(String name, int age) { this.name = name; this.age = age; } public void f1() { System.out.println("我是非静态方法"); } public static void f2() { System.out.println("我是静态方法"); } public static void main(String[] args) { System.out.println("-------------------------"); //普通代码块(局部块) { int x = 5; System.out.println("我在普通代码块中" + x); } System.out.println("-------------------------"); test t1 = new test("zsr", 20); System.out.println("-------------------------"); test t2 = new test("gcc", 20); } }
转载自:CSDN 作者:Baret-H
原文链接:https://bareth.blog.csdn.net/article/details/106626944