• static{}(静态代码块)与{}(非静态代码块)的异同点


    相同点:都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个,
        一般在代码块中对一些static变量进行赋值。
    不同点:静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)。
        静态代码块只在第一次new执行一次,之后不再执行,而非静态代码块在每new
        一次就执行一次。非静态代码块可在普通方法中定义(不过作用不大);而静态代码块不行。
    例:
    //普通类
    public class PuTong {
    public PuTong(){
    System.out.print(
    "默认构造方法!-->");
    }

    //非静态代码块
    {
    System.out.print(
    "非静态代码块!-->");
    }

    //静态代码块
    static{
    System.out.print(
    "静态代码块!-->");
    }

    public static void test(){
    {
    System.out.println(
    "普通方法中的代码块!");
    }
    }
    }

    //测试类
    public class TestClass {

    /**
    * 区别两次new静态与非静态代码块执行情况
    */
    public static void main(String[] args) {
    PuTong c1
    = new PuTong();
    c1.test();

    PuTong c2
    = new PuTong();
    c2.test();
    }
    }

    /*
    运行输出结果是:
    静态代码块!-->非静态代码块!-->默认构造方法!-->普通方法中的代码块!
    非静态代码块!-->默认构造方法!-->普通方法中的代码块!
    */
  • 相关阅读:
    Centos 端口被占用,kill被占用的进程
    Centos7 docker安装GitLab
    MongoDB 3.6.1集群部署
    MySql时区修改
    Springboot默认定时任务——Scheduled注解
    Nacos Docker集群部署
    docker-compose使用
    docker部署redis集群
    设置Redis集群访问密码(不停机设置)
    AWS SNS 创建 订阅 发布
  • 原文地址:https://www.cnblogs.com/rgky/p/1986907.html
Copyright © 2020-2023  润新知