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方法。

  • 相关阅读:
    ABP框架
    ABP框架
    VS2017调试器无法附加到IIS进程(w3wp.exe)
    c# 动态实例化一个泛型类
    在CentOS7.1上安装Gitlab碰到的问题及解决方法
    MongoDB
    在ABP模板工程中使用MySql
    增加VirtualBox虚拟机的磁盘空间大小(Host:Win7 VirtualBox5.0.16 VM:Win10)
    Spring中Bean及@Bean的理解
    @Bean 的用法
  • 原文地址:https://www.cnblogs.com/zyx1314/p/5281224.html
Copyright © 2011-2022 走看看