zoukankan      html  css  js  c++  java
  • java 对象属性初始化顺序

    A、类的初始化顺序如下:
    1.  为静态属性分配内存并赋值(后面大括号语句不执行,这里是初始化,只是添加变量和值) 
             或  执行静态代码块(立刻执行大括号里面的语句)
              为什么这样说呢,因为谁在前先加载谁,包括静态属性之间,和静态块之间的顺序,
              但是注意,虽然顺序都可以当第一,但是静态块、静态属性执行的东西完全不一样,怎么不一样,已经写上去了自己看
          (笔者注:这个问题,在花了很多时间的推敲后,最终有了答案,前后花了不少的时间去运行代码,修改各种情况,也有同学参与了进来,所以大家对我们付出的努力应该尊重啊)
      2、非静态属性分配内存并赋值
       3、构造方法(实际上这个先于非静态属性调用到,只是构造方法里面的语句暂停执行,等到非静态属性加载完才执行)
     4、执行非静态代码块 或 静态方法(都是调用了才加载)。



    B、类的代码(大括号内的语句)执行顺序:   当你创建了对象的时候才会用到各个属性和变量对不对,这里就是这个顺序
    ->1、执行静态代码块(大括号包含的语句立刻执行,绝对是第一位的执行,没有能和它平级的)
    ->2、静态属性 (第二位执行
    ->3、为非静态属性分配内存并赋值(大括号内语句第三位执行)
    ->4、构造函数
    ->执行非静态代码块 或 静态方法(都是调用了才加载)。
  • 相关阅读:
    sleep和wait区别
    java学习路线图
    screen实现关闭ssh之后继续运行代码
    linux截取字符串的多种方法
    如何用Maven创建web项目(具体步骤)
    Failed to read candidate component class包冲突解决方法
    hadoop参数配置
    How to solve java.net.SocketTimeoutException:60000millis problem in HDFS
    win8style布局
    signalR的一些细节
  • 原文地址:https://www.cnblogs.com/lllini/p/11955226.html
Copyright © 2011-2022 走看看