块的基本说明
,说白了就是大括号{}包裹住的的区域。
块的基本应用
也就是大括号管理的区域。其实块的应用很多,比如典型的i块f语句,如果没有大括号的话,if语句只能管理一行
boolean b = false;
if(b)
System.out.println("这里是if语句控制的");
System.out.println("这里就不受if语句控制了");
所以输出是 这里就不受if语句控制了。
其实这个控制一行,程序是不认识的,其实是控制到下一个;的范围,下面这个例子可以证明
int a = 0;
if(a>1)
a++;a++;
System.out.println(a);
输出是 1
如果用大括号包裹的话,if语句就能控制任意大的空间,这个大家都经常使用,就不用写个例子了。
类中的块和静态快
在一个类中,可以在不是方法之外写
“`
public class Kuai {
{
System.out.println("普通块");
}
static{
System.out.println("static块");
}
{
System.out.println("普通块1");
}
static{
System.out.println("static块1");
}
public Kuai(){
System.out.println("构造方法");
}
}“`
如果这么写,在创建这个类的对象的时候就会输出
static块
static块1
普通块
普通块1
构造方法
所以说,块是构造的时候先于构造方法执行的,static块是在普通构造块之前的。也就是说在优先级上:static块>普通块>构造方法
在相同的优先级中,比较哪段代码靠前。这个也很容易理解。
在方法里面的话,普通块的应用大家都很熟悉,甚至很多人都不太会想到这个概念,static块在方法中是不允许使用的,可能是考虑到方法执行先后的问题难以思考吧。