1、普通代码块:直接在一个方法中或语句中出现的{}被称为普通代码块。
相同类型的代码块执行顺序为,先定义先执行。
2、构造块:直接在类中定义的且没有加static关键字的代码块{}称为构造代码块。
构造块在创建对象时被执行,每次创建对象都会被执行,且构造块的执行顺序
优先于类构造函数。
3.静态代码块:在java类中使用static关键字声明的代码块称为静态代码块。静态
代码块主要用于初始化类,为类的静态属性初始化。有如下特定:
1)静态代码块不能存在任何方法体内
2)静态代码块不能直接访问实例变量和实例方法,需通过类的实例对象来访问。
这与静态方法是一样的
3)jvm在加载类时,先会执行静态代码块,所以静态代码块优先于主方法执行。
如果类中包含多个静态代码块,则先定义先执行。每个静态代码块只会执行一次。
4.无论是普通代码块,构造块,还是静态代码块内的语句,都可以定义变量、调用
其他方法,使用各种循环语句和控制语句等。
//==============下面示例==============
====类Code====
class code{
{ //1.构造块
system.out.println("code的构造块");
}
static { //2.静态构造块
system.out.println("code的静态构造块");
}
public Code(){ // 3.构造方法
system.out.println("code的构造方法");
}
}
====类Codeblock====
public class Codeblock{
{ //1.构造块
system.out.println("Codeblock的构造块");
}
static { //2.静态构造块
System.out.println("Codeblock的静态构造块");
}
public Codeblock(){ // 3.构造方法
system.out.println("Codeblock的构造方法");
}
public satic void main(String args[]){
System.out.println("Codeblock的主方法");
new Code();
new Code();
new Codeblock();
new Codeblock();
}
}
========运行结果========
Codeblock的静态方法
Codeblock主方法
Code的静态方法
Code的构造块
Code的构造方法
Code的构造块
Code的构造方法
Codeblock的构造块
Codeblock的构造方法
Codeblock的构造块
Codeblock的构造方法
请按任意键继续 . . . .