《对象创建过程中 实例化的顺序》摘自《Thinking in JAVA》
2018-01-02 16:11
381 查看
最近一直在看《Thinking In JAVA》,里面一些知识点自己平日里还真没有注意过:
譬如这部分:在实例化对象的过程,对象的各部分的初始化顺序:
总结一下对象的创建过程,假如有个名为Dog的类:
1.即使没有显示的使用Static关键字,构造器实际上也是静态方法,因此首次创建Dog对象时,或者Dog类的静态方法、静态域首次被访问时,Java解释器必须查找类路径,以定位
Dog.class文件
2.然后加载Dog.class文件,有关静态初始化的所有动作都会执行。因此,静态初始化只会在Class对象首次加载时进行一次。
3.当用New Dog()创建对象的时候,首先为Dog在堆上分配足够的存储空间。
4.这块存储空间会被清零,这就将Dog对象中的所有基本数据类型都设成了默认值,而引用则设成了Null。
5.执行所有出现与字段定义处的初始化动作。
6,执行构造器,这可能会牵涉到很多动作,尤其是在涉及继承的时候。
譬如这部分:在实例化对象的过程,对象的各部分的初始化顺序:
总结一下对象的创建过程,假如有个名为Dog的类:
1.即使没有显示的使用Static关键字,构造器实际上也是静态方法,因此首次创建Dog对象时,或者Dog类的静态方法、静态域首次被访问时,Java解释器必须查找类路径,以定位
Dog.class文件
2.然后加载Dog.class文件,有关静态初始化的所有动作都会执行。因此,静态初始化只会在Class对象首次加载时进行一次。
3.当用New Dog()创建对象的时候,首先为Dog在堆上分配足够的存储空间。
4.这块存储空间会被清零,这就将Dog对象中的所有基本数据类型都设成了默认值,而引用则设成了Null。
5.执行所有出现与字段定义处的初始化动作。
6,执行构造器,这可能会牵涉到很多动作,尤其是在涉及继承的时候。
相关文章推荐
- 《Thinking in Java》——静态、非静态成员变量、子句的初始化顺序(含继承)及对象创建过程
- java对象实例化过程中的代码执行顺序
- java对象的创建过程(摘自《java编程思想》)
- 深入理解java对象的创建过程:类的初始化和实例化
- Thinking in java 读书笔记(三、finalize(),对象的创建,可变参数列表,函数重载)
- 深入理解Java对象的创建过程:类的初始化与实例化
- 深入理解Java对象的创建过程:类的初始化与实例化
- 深入理解Java对象的创建过程:类的初始化与实例化
- 深入理解Java对象的创建过程:类的初始化与实例化
- 《Thinking in Java》——构造器是private时如何创建对象?
- 《Thinking in Java》第二篇笔记 就Java创建对象说几句
- [置顶] 深入理解Java对象的创建过程:类的初始化与实例化
- java对象的创建过程:类的初始化与实例化
- java对象创建过程/初始化顺序
- 深入理解Java对象的创建过程:类的初始化与实例化
- java对象创建过程及初始化顺序
- Java小知识 对象创建和初始化过程,堆:栈区别
- Java对象的创建过程
- Java:对象创建和初始化过程
- java对象创建过程