Java 代码块的分类
代码块是写在类中,而不是主方法中。
1. 静态代码块
静态代码块是被static修饰的代码块,静态代码块的执行方式是类在被加载的时候执行的。
package sirius;
public class Test {
static {
System.out.println("静态代码块");
}
public static void main(String[] args) {
System.out.println(1234);
}
}
以上是代码的执行结果,我们可以看到,主方法中的没有任何代码,但是执行结果显示静态代码块,因为静态代码块中是在类加载时就执行了,为了更好更好地理解,在主方法中输出数字1234,可以看出,静态代码块的执行是在主方法之前的,正好验证了上面所说,也就是,静态代码块是在类加载时执行的。
2.非静态代码块
非静态代码块是没有static修饰的,非静态代码块是在创建对象的时候执行的,每当new一个对象,就执行一次
package sirius;
public class Test {
{
System.out.println("非静态代码块");
}
public static void main(String[] args) {
System.out.println(1234);
Test test = new Test();
new Test();
}
}
可以从上面代码看出来,非静态代码块不同于静态代码块在类加载时执行,而是在主方法中执行的,而且每当new一个对象,非静态代码块就执行一次,这是静态代码块与非静态代码块的区别。