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一个对象都会被执行。

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

  • 相关阅读:
    exceljs的使用
    解决ios下的微信打开的页面背景音乐无法自动播放
    js 给定日期转为星期几
    获取地址栏参数
    解决浏览器缓存 或 刷新URL地址
    计算两个日期之间的天数
    获取当前日期的前后N天日期的方法
    将一下 prototype 是什么东西,原型链的理解,什么时候用 prototype
    apply和 call 什么含义,什么区别?什么时候用
    高效Web开发的10个jQuery代码片段
  • 原文地址:https://www.cnblogs.com/bmbi/p/5087901.html
Copyright © 2011-2022 走看看