所谓代码快是指是哦那个{} 括号括起来的一段代码,其中,同步代码快以后在解释
1.普通代码块
普通代码块就是直接在方法或是语句中定义的代码块
package test6;
public class CodeDemo01 {
public static void main(String args[]) { //定义一个普通代码快
int x=30;
System.out.println("普通代码块----> x=" +x);
}
int x=100;
System.out.println("普通代码块----> x=" +x);
}
2.构造块
构造代码块是直接写在类中的代码块。
package test6;
class Demo {
public Demo() { // 定义构造方法
System.out.println("2.构造方法");
}
{ // 定义构造块
System.out.println("1.构造块");
}
}
public class CodeDemo01 {
public static void main(String args[]) {
new Demo(); // 实例化对象
new Demo();
new Demo();
}
}
结果:
1.构造块
2.构造方法
1.构造块
2.构造方法
1.构造块
2.构造方法
可以发现,构造块优先于构造方法执行,而且每次实例化对象时都会执行构造块中的代码。
3.静态代码块
静态代码快是使用static关键字声明的代码快
例子:静态代码块
package test7;
class Demo {
{
System.out.println("1.构造块"); //优先2
}
static {
System.out.println("0.静态代码块"); // 优先1
}
public Demo() {
System.out.println("2.构造方法"); //优先3
}
}
public class CodeDemo03 {
static {
System.out.println("在主方法所在类中定义代码快。");
}
public static void main(String args[]) {
new Demo();
new Demo();
new Demo();
}
}
结果:
在主方法所在类中定义代码快。
0.静态代码块
1.构造块
2.构造方法
1.构造块
2.构造方法
1.构造块
2.构造方法
注意:
1.优先顺序,静态--->构造块----->构造方法
2.不管有多少个对象产生,静态代码块只执行一次
*******************************************
静态代码块的妙用:
静态代码快优先于主方法(main)的执行:
public class CodeDemo04{
static {
system.out.println("hello word!");
system.exit(2);
}
}
另外一个hello word 程序。可以不用main程序