- 静态初始化块
- 非静态初始化块
- 构造方法(有参/无参)
静态初始化块:
尽在类加载时执行一次且仅此一次,代码块中的数据只能赋值给静态变量,其他成员变量不可。
static{
System.out.println("静态初始化块");
}
非静态初始化块:
对实例化对象每一次初始化,均执行一次,可以给any成员变量赋值。
{
System.out.println("非静态初始化块");
}
构造方法:
在初始化实例对象时进行调用。
public Demo() {
System.out.println("通过构造方法初始化");
}
执行顺序:
- 加载类时,执行一次静态初始化代码块(Only Once)。
- 每次初始化实例对象时:执行非静态初始化块——>执行构造方法。
Demo
/**
* @ClassName Demo
* @Description TODO cn.sit.xiaoxiaodao.day0224
* @Auther Carlos
* @Date 2019/2/24 21:14
* @Version 1.0
**/
public class Demo {
public static Demo d1 = new Demo();
{
System.out.println("初始化块");
}
static{
System.out.println("静态初始化块");
}
//构造方法
public Demo() {
System.out.println("通过构造方法初始化");
}
public static void main(String[] args){
Demo d2 = new Demo();
}
}