分类:普通块,构造块,静态块,同步块(多线程)
一、普通快:
在其中定义的num,必须在所属普通块内使用,超出括号无法使用
二、构造块(在方法外)不常用
适用于,你如果想在方法外写代码,就可以放在构造块中
三、静态块
用static修饰的代码块,只能访问静态属性和静态方法
四、完整代码及运行所得结果
(注意代码中的空构造器,无空构造器则无法正常运行,所以建议只要用到构造器就补上空构造器)
public class Test {
//属性
int a;
static int sa;
//方法
public void a(){
System.out.println("-----a");
{
//普通块限制了局部变量的作用范围
System.out.println("-------a");
System.out.println("-----这是普通块");
int num = 10;
System.out.println(num);
}
//System.out.println(num);
//if(){}
//while (){}
}
public void b(){
System.out.println("------b");
}
//构造块
{
System.out.println("---------这是构造块");
}
//静态块
static{
System.out.println("-----这是静态块");
System.out.println(sa);
}
//构造器
public Test(){
}
public Test(int a){
this.a = a;
}
public static void main(String[] args) {
Test t = new Test();
t.a();
Test t2 = new Test();
t2.a();
}
}
结果:
总结:(纯干货)
(1)代码块执行顺序:
最先执行静态块,只在类加载的时候执行一次,所以一般以后实战写项目:创建工厂,数据库的初始化信息都放入静态块。一般用于执行一些全局性的初始化操作。
1.再执行构造块,(不常用)
2.再执行构造器,
3.再执行方法中的普通块。