public class CodeDemo01 {
public static void main(String args[]){
{
//普通代码块
int x=10;
System.out.println("x="+x);
}
int x=100;
System.out.println("x="+x);
}
}
class Demo02{
{//构造块
System.out.println("****************构造块****************");
}
public void Demo02(){
System.out.println("****************构造方法****************");
}
}
public class CodeDemo01 {
public static void main(String args[]){
{//普通代码块
int x=10;
System.out.println("x="+x);
}
int x=100;
System.out.println("x="+x);
}
}
运行结果:
****************构造块****************
****************构造方法****************
****************构造块****************
****************构造方法****************
****************构造块****************
****************构造方法****************
有运行结果可以知道构造块先于构造方法执行
class Demo05{
{//构造块
System.out.println("****************构造块****************");
}
static{
System.out.println("************类中的静态块************");
}
public Demo05(){//构造方法
System.out.println("****************构造方法****************");
}
}
public class CodeDemo03 {
static{
System.out.println("************主类中的静态块************");
}
public static void main(String args[]){
new Demo05();
new Demo05();
new Demo05();
}
}
运行结果:
************主类中的静态块************
************类中的静态块************
****************构造块****************
****************构造方法****************
****************构造块****************
****************构造方法****************
****************构造块****************
****************构造方法****************
有运行结果可以看出主类的静态块和类的静态块都只执行了1次。并且主类中的静态块先执行