- class Demo {
- private static String name = "zhangsan";
- Demo(String name) {
- System.out.println("a=" + name);
- }
- {
- System.out.println("b=" + name);
- }
- static {
- System.out.println("c=" + name);
- }
- }
- class fsd {
- public static void main(String[] args) {
- Demo d = new Demo("wangwu");
- Demo d2 = new Demo("ww");
- }
- }
复制代码 静态代码块在非静态代码块之前执行(静态代码块--》非静态代码块--》构造方法)。
静态代码块只在第一次new执行一次,之后不在执行,而非静态代码块在每new一次就执行一次。非静态代码块可以 在普通方法中定义(个人感觉作用不大);而静态代码块不行。
再结合我加了一句的代码的打印结果理解下。 |