zoukankan      html  css  js  c++  java
  • 类中属性加载顺序的demo

     1 import lombok.extern.slf4j.Slf4j;
     2 
     3 /**
     4  * 加载顺序
     5  * 静态属性--->静态代码块--->非静态属性--->构造器
     6  * 静态内部类,只有调用getDate 方法时才会加载,且只加载一次。
     7  * 静态属性,只加载一次,在类加载时候加载
     8  */
     9 @Slf4j
    10 public class LoadOrderDemos {
    11 
    12     public static long staticParam =System.currentTimeMillis();
    13 
    14     public int nonStaticParam=1;
    15 
    16     static{
    17         //date有值,说明date在静态代码块之前加载
    18         log.info("---静态代码块执行完之前---staticParam---{}", staticParam);
    19         log.info("---静态代码块执行完毕");
    20     }
    21 
    22     public LoadOrderDemos(String name){
    23         //nonStaticParam 有值说明非静态属性在构造器之前加载
    24         log.info("---{}---构造器执行完之前---nonStaticParam---{}",name,nonStaticParam);
    25         log.info("---{}---构造器执行完成",name);
    26     }
    27 
    28     static class InnerClass{
    29 
    30         public static long date=System.currentTimeMillis();
    31 
    32     }
    33 
    34     public long getDate(){
    35         return InnerClass.date;
    36     }
    37     public static void main(String[] args) {
    38 
    39         //两个对象new 之前 静态代码块和静态属性打印,说明静态加载在前,
    40         //调用getDate输出的值相同,说明静态内部类中的静态属性只加载一次,还是延迟加载
    41         //打印staticParam,输出的值相同,说明静态属性只加载一次,不是延迟加载。
    42         LoadOrderDemos t1=new LoadOrderDemos("t1");
    43         LoadOrderDemos t2=new LoadOrderDemos("t2");
    44         log.info("---t1---InnerClass.getDate---{}---staticParam---{}",t1.getDate(),staticParam);
    45         log.info("---t2---InnerClass.getDate---{}---staticParam---{}",t2.getDate(),staticParam);
    46 
    47     }
    48 }

     

  • 相关阅读:
    Codeforces Round #590 D. Distinct Characters Queries
    线段树模板加模板题POJ3468
    hihoCoder挑战赛5 C 与链
    HDU 5044 Tree 树链剖分
    HYSBZ 1901 Dynamic Rankings 树状数组套主席树
    POJ 2761 Feed the dogs 主席树
    POJ 2104 K-th Number 主席树 区间第K大
    HDU 4547 CD操作 LCA
    POJ 1470 Closest Common Ancestors 离线LCA
    HYSBZ 1036 树的统计Count 树链剖分 线段树
  • 原文地址:https://www.cnblogs.com/geekdc/p/13475474.html
Copyright © 2011-2022 走看看