java中静态代码块和非静态代码块的联系

1.相同点:
1)都在jvm加载类时且在构造方法执行之前执行,在类中可以定义多个
2)一般在代码块中对一些static变量进行赋值


2.不同点: 1)静态代码块在非静态代码块之前执行: 静态代码块—》非静态代码块--》构造方法 2)静态代码块只在第一次new执行一次,之后就不再执行,而非静态代码块在每new一次就执行一次。

实例:

import java.util.Scanner;
public class Main {
    public Main(){
        System.out.print("默认构造方法--》");
    }
    {
        System.out.print("非静态代码块--》");
    }
//    静态代码块
    static{
        System.out.print("静态代码块--》");
    }
//    静态成员方法
    public static void test(){
        System.out.println("普通方法中的代码块");
    }
    public static void main(String[] args){
        Main main1=new Main();
        Main.test();
        Main main2=new Main();
        Main.test();
    }
}

运行截图:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yuanren201/article/details/88665020
今日推荐