1.代码块说明
一对花括号表示,仅可以使用static修饰,可以用来对类或对象进行初始化。
-
静态代码块:static修饰
- 随着类的加载而执行,只执行一次,有多个时,按顺序执行。
- 无法调用非静态结构。
-
非静态代码块
- 每次创建对象时都会执行一次,且优先于构造器执行,有多个时,按顺序执行。
- 可以调用静态结构,非静态结构。
2.使用
以下类中有静态属性name和非静态属性age。
public class CodeBlock {
private static String name;
private int age;
{
name = "芜湖";
age = 18;
System.out.println("代码块:"+name+","+age);
}
static {
name = "张三";
//age = 20; 报错,静态代码块中不能使用非静态结构
System.out.println("静态代码块:"+name);
}
public static void main(String[] args) {
System.out.println("main方法");
CodeBlock codeBlock1 = new CodeBlock();
CodeBlock codeBlock2 = new CodeBlock();
}
}
执行main方法输出以下结果。
静态代码块:张三
main方法
代码块:芜湖,18
代码块:芜湖,18
标签:Java,name,静态,代码,基础,static,age,CodeBlock
From: https://www.cnblogs.com/zhishu/p/16708886.html