zoukankan      html  css  js  c++  java
  • static代码块与{}代码块的比较

    第一个例子:

    public class StaticDemo {
        {
            System.out.println("{} 代码块");
        }
        static{
            System.out.println("static 代码块");
        }
        
        public static void main(String[] args) {
            
        }
    
    }
    static 代码块
    View Code

          结论:类的加载会执行static代码块,不会执行{}代码块。

    第二个例子:

    public class StaticDemo2 {
        
        {
            System.out.println("{} 代码块");
        }
        
        static{
            System.out.println("static 代码块");
        }
        
        public static void main(String[] args) {
            new StaticDemo2();
        }
    
    }
    static 代码块
    {} 代码块
    View Code

         结论: new一个类的实例,会先执行static代码块,再执行{}代码块。

    第三个例子:

    public class StaticDemo3 {
        
      public StaticDemo3(){
            System.out.println("构造函数");
        }
     
        {
            System.out.println("{} 代码块");
        }
        static{
            System.out.println("static 代码块");
        }
        
        public static void main(String[] args) {
            new StaticDemo3();
        }
    
    }
    static 代码块
    {} 代码块
    构造函数
    View Code

          结论:new一个类的实例,会先执行static代码块,再执行{}代码块,最后执行构造函数。

    第四个例子:

    public class StaticDemo4 {
        
      public StaticDemo4(){
            System.out.println("构造函数");
        }
     
        {
            System.out.println("{} 代码块");
        }
        static{
            System.out.println("static 代码块");
        }
        
        public static void main(String[] args) {
            new StaticDemo4();
            new StaticDemo4();
        }
    
    }
    static 代码块
    {} 代码块
    构造函数
    {} 代码块
    构造函数
    View Code

          总结:static{}代码块,会在类初次被加载的时候被执行一次。{}代码块和构造函数一样,每次new一个对象都会被执行。

    注:当有多个带不同参数的构造函数需要执行相同的初始化代码,可以将这些代码提起出来放在{}代码块中。

  • 相关阅读:
    Oracle 过滤和排序数据
    Oracle基础知识介绍
    禁用笔记本自带的键盘
    阿里云服务开启swap分区。
    谷粒商城nacos远程配置中心出错
    nacos修改密码
    ssm+maven+json 依赖版本
    idea 使用maven创建web过慢解决问题
    mybatis的动态sql
    mybatis -基础知识点梳理
  • 原文地址:https://www.cnblogs.com/bmbi/p/5087901.html
Copyright © 2011-2022 走看看