代码块种类
代码块有以下几种:静态代码块、构造代码块、构造函数、普通代码块
代码块介绍
详细介绍可查看下面这篇文章
https://www.cnblogs.com/bigdata-stone/p/10458380.html
注:关于第四小节“普通代码块”,作者可能笔误,例子写错了。普通代码块是在方法中定义的,所以应该如下:
public void sayHelllo {
{
System.out.println(“普通代码块”);
}
}
代码块加载顺序
例子:
public class CodeBlock {
public CodeBlock(){
System.out.println("无参构造函数");
}
public CodeBlock(String s){
System.out.println("有参构造函数");
}
static{
System.out.println("静态代码块");
}
{
System.out.println("构造代码块");
}
public void print(){
System.out.println("普通代码块");
}
public static void println(){
System.out.println("静态方法块");
}
public static void main(String[] args) {
System.out.println("begin:");
CodeBlock block=new CodeBlock();
block.print();
System.out.println("********************");
CodeBlock block2=new CodeBlock();
block.print();
block2.print();
System.out.println("********************");
CodeBlock block3=new CodeBlock("begin");
block3.print();
}
}
附上运行结果:
从运行结果可以看出:静态代码块>构造代码块>构造函数>普通代码块
“静态代码块”仅执行一次,在类加载时就执行了,在main方法中的System.out.println(“begin:”);之前执行。
“构造代码块”优先于构造函数,并且每new一个对象,就执行一次。