先贴出代码
public class JavaCore {
/**
* Java的4种代码块
*/
/**
* 1.静态代码块。 使用static关键字声明的代码块称为静态代码块,静态块的主要目的是用来初始化参数。只调用一次。
* 静态块优先于主方法的执行,静态块优先于构造方法的执行,而且只执行一次!
*/
static {
System.out.println("静态代码块");
}
/**
* 2.构造代码块。 直接在类中定义的没有加static关键字的代码块{}称为构造代码块,
* 构造代码块在new对象时,构造代码块优先构造方法执行。
*/
{
System.out.println("构造代码块");
}
//
public void A(){
/**
* 3.普通代码块. 直接在一个方法中出现的{}就称为普通代码块
*
*/
{
int x = 10;
System.out.println("x=" + x);
}
}
/**
* 4.同步代码块。同步代码块主要出现在多线程中。
*
*/
}
比较:静态代码块与静态方法
1.静态代码块是自动执行的;
2.静态方法是被调用的时候才执行的
静态代码块与构造代码块:
1.静态代码块只给第一次类的实例初始化
2.构造代码块每次类的实例都初始化(执行)
构造代码块与构造函数:
1.构造函数是给对应的对象进行初始。因为:一个类中可以有多个构造函数,至于类的实例(创建对象)是根据传入的形式参数(形参个数、形参类型)而决定执行哪一个构造函数,
2.构造代码块是给所有对象进行初始化。每创建一个对象(类的实例)都会执行构造代码块