zoukankan      html  css  js  c++  java
  • java的初始化

    1.初始化


    1.1 初始化条件:  "initialize on first active use"--" 在首次主动使用时初始化"。

    (1). 使用new关键字时        例如 User user = new User()

    (2). 初次使用该类的静态成员时      例如 User.name

    (3). 使用该类的导出类时

    2.初始化顺序


    2.1 java初始化顺序

    (1) 父类静态代码块(包括静态初始化块,静态属性,但不包括静态方法)
    (2) 子类静态代码块(包括静态初始化块,静态属性,但不包括静态方法 )
    (3) 父类非静态代码块( 包括非静态初始化块,非静态属性 )
    (4) 父类构造函数
    (5) 子类非静态代码块 ( 包括非静态初始化块,非静态属性 )
    (6) 子类构造函数
     1 public class Test {
     2     public static void main(String[] args) {
     3         Sub sub = new Sub();
     4     }
     5 }
     6 
     7 class Super {
     8     static {
     9         System.out.println("Super.static.area");
    10     }
    11 
    12     private int a = 2;
    13     private int b = 1;
    14 
    15     Super() {
    16         System.out.println("Super() a: " + a);
    17         System.out.println("Super() b: " + b);
    18         method();
    19     }
    20 
    21     void method() {
    22         System.out.println("Super.method");
    23     }
    24 }
    25 
    26 class Sub extends Super {
    27     static {
    28         System.out.println("Sub.static.area");
    29     }
    30 
    31     private int b = 2;
    32 
    33     Sub() {
    34         System.out.println("Sub() b: " + b);
    35         method();
    36     }
    37 
    38     @Override
    39     void method() {
    40         System.out.println("b: " + b);
    41     }
    42 }output:
    43 Super.static.area
    44 Sub.static.area
    45 Super() a: 2
    46 Super() b: 1
    47 b: 0
    48 Sub() b: 2
    49 b: 2

    3.初始化原理


    上面仅仅是初始化的结果,为什么要这要初始化?

    先立一个flag在这里,等看了jvm后再写

    1_thumb

    4.reference

    https://www.ibm.com/developerworks/cn/java/j-lo-clobj-init/

    https://www.nowcoder.com/test/question/done?tid=8188278&qid=3212#summary

  • 相关阅读:
    mkdirp——递归创建目录及其子目录
    rimraf命令 递归删除目录所有文件
    前端面试总结——http、html和浏览器篇
    meta标签
    多行文本溢出显示省略号
    ui-sref
    Angular组件之间通讯
    定义路由的state参数
    angularjs中factory, service和provider
    Oracle Spatial分区应用研究之五:不同分区粒度+本地空间索引效率对比
  • 原文地址:https://www.cnblogs.com/maying3010/p/5939893.html
Copyright © 2011-2022 走看看