静态代码块
格式:
static{
}
特点:
--属于类,会与类一起优先加载,而且会自动触发执行一次
--可以用于在执行类之前进行静态资源的初始化操作。
public class CodeDemo01 {
public static List<String> cards = new ArrayList<>();
static {
System.out.println("静态代码块执行一次~~~~~~");
cards.add("红桃3");
cards.add("黑桃3");
}
public static void main(String[] args) {
System.out.println("main方法执行一次");
System.out.println(cards);
}
}
实例代码块
格式:
{
}
特点:
--属于类的每个对象,会与类的每个对象一起加载,每次创建对象的时候,实例代码块会自动触发执行一次
--实例代码块可以初始化实例资源。
--实例代码块实际是提取到每个构造器中去执行的
public class CodeDemo02 {
private String name;
{
System.out.println("实例代码块执行一次~~~~~~~");
name = "黑马";
}
//效果相同
// public CodeDemo02() {
// System.out.println("实例代码块执行一次~~~~~~~");
// name = "黑马";
// }
public static void main(String[] args) {
System.out.println("main方法执行一次");
CodeDemo02 c1 = new CodeDemo02();
CodeDemo02 c2 = new CodeDemo02();
new CodeDemo02();//匿名对象
new CodeDemo02();
System.out.println(c1.name);
System.out.println(c2.name);
}
}