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

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



    B、类的代码(大括号内的语句)执行顺序:   当你创建了对象的时候才会用到各个属性和变量对不对,这里就是这个顺序
    ->1、执行静态代码块(大括号包含的语句立刻执行,绝对是第一位的执行,没有能和它平级的)
    ->2、静态属性 (第二位执行
    ->3、为非静态属性分配内存并赋值(大括号内语句第三位执行)
    ->4、构造函数
    ->执行非静态代码块 或 静态方法(都是调用了才加载)。
  • 相关阅读:
    [ python ] 线程的操作
    [ python ] 进程的操作
    RabbitMQ 集群
    RabbitMQ 实践及使用
    RabbitMQ 基础知识
    [ python ] FTP作业进阶
    [ python ] 项目一:FTP程序
    [ python ] 网络编程(2)
    [ python ] 网络编程(1)
    Linux 日志系统及分析
  • 原文地址:https://www.cnblogs.com/lllini/p/11955226.html
Copyright © 2011-2022 走看看