zoukankan      html  css  js  c++  java
  • Java 对象初始化

     

    对象A的创建过程:

    1. 构造器实际上是静态方法。当首次创建对象A 或者 A类的静态方法/静态域首次被访问时,Java解释器查找类路径,以定位

        A.class文件。(当程序创建第一个对类的静态成员的应引用时,类会被动态加载到JVM中)

    2. 载入A.class,有关静态初始化的所有动作都会执行。因此,静态初始化只在Class对象首次加载的时候进行一次。

    3. 当用new A()创建对象时,首先在堆上为A对象分配足够的存储空间。

    4. 这个存储空间会被清零,这样就自动将A对象的所有基本类型数据设置成了默认值,引用则被设置成了null。

    5. 执行所有出现于字段定义处的初始化工作。

    6. 执行构造器。

    属性、方法、构造方法和自由块都是类中的成员,在创建类的对象时,类中各成员的执行顺序:

    1. 父类静态成员和静态初始化快,按代码出现的顺序依次执行。
    2. 子类静态成员和静态初始化块,按代码出现的顺序依次执行。
    3. 父类的实例成员和实例初始化块,按代码出现的顺序依次执行。
    4. 父类的构造方法(如果没有明确指出调用某个父类的构造器,就会默认调用父类默认构造器,如果不存在默认构造器,编译器会出

         错)
    5. 子类实例成员和实例初始化块,按代码出现的顺序依次执行。
    6. 子类的构造方法。

    编写构造器的一条有效准则:(Java编程思想第四版中文P163)

    “用尽可能简单的方法使对象进入正常状态,如果可以的话,避免调用其他方法”,在构造器内唯一能够安全调用的哪些方法是基类中的final方法。

  • 相关阅读:
    八大排序
    链表的合并
    记录B站yxc的背包九讲相关代码
    C++中多态实现
    YOLOV4所用到的一些tricks
    C++中的string 和 stringstream 的知识
    博客园中插入视频
    博客园中插入网页
    面试前必须要知道的【可重入锁 自旋锁】
    面试前必须要知道的【乐观锁 悲观锁】
  • 原文地址:https://www.cnblogs.com/zyx1314/p/5281224.html
Copyright © 2011-2022 走看看