zoukankan      html  css  js  c++  java
  • 浅谈Java中静态代码块和非静态代码块

    静态代码块:

          static{}

          执行优先级高于非静态的初始化块,它会在类初始化(类初始化这个问题改天再详细讨论)的时候执行一次,执行完成便销毁,它仅能初始化类变量,即static修饰的数据成员。

    非静态代码块:

          {}

          执行的时候如果有静态初始化块,先执行静态初始化块再执行非静态初始化块,在每个对象生成时都会被执行一次,它可以初始化类的实例变量。非静态初始化块会在构造函数执行时,在构造函数主体代码执行之前被运行。

    例程:   

    public class Test1 {
      public static String staticField = "静态变量";
      public String field = "变量";
      static{
          System.out.println(staticField);
          System.out.println("静态初始块");
      }
      
      {
          System.out.println(field);
          System.out.println("初始化块");
      }
      
      public Test1() {
         System.out.println("构造器");
      }
        
      public static void main(String[] args) {
        new Test1();
        System.out.println();
        new Test1();
      }
    }

         例程运行结果:            

        静态变量
        静态初始块
        变量
        初始化块
        构造器

        变量
        初始化块
        构造器

         

      

  • 相关阅读:
    iOS推送通知
    KVO内部实现原理
    沙盒目录结构
    UITableView的常用属性和代理方法
    优秀文章的链接
    c++面试题
    递归练习
    c#连接mysql环境配置
    mysql命令详解
    十进制转二进制
  • 原文地址:https://www.cnblogs.com/flythinking/p/6842566.html
Copyright © 2011-2022 走看看