JAVA基础——初始化顺序及相关(集各家言论再自己总结的)
来源:互联网 发布:linux重启vnc服务 编辑:程序博客网 时间:2024/06/05 20:21
运行得到的结果应该是:
Parent static initialization
Child static initialization
Parent initialization
Parent constructor
Child initialization
Child constructor
Parent initialization
Parent constructor
Child initialization
Child constructor
nChildStaticValue =7,nChildValue = 7
初始化顺序是:
(1) 先是父类的static变量和static初始化块 (因为在TestFinalize 的main中需要使用Child这个类,所以JVM才去加载它,结果发现它继承自Parent,那么就会发现需要先加载Parent这个class,所以我们会发现是 Parent的static field被初始化&static initialization 先执行,然后child的 static field被初始化&static initialization 执行,static field和static块执行的顺序则是按照它在代码里面书写的顺序从上到下执行的)
(2)然后是子类的static变量和static初始化块
(3)父类的实例变量、初始化块 (initialization会在每次new一个对象的时候都执行,它和constructor的区别见下面的叙述)
(4)父类的构造方法
(5)子类的实例变量、初始化块
(6)子类构造方法
初始化块(Initialization)和构造器(Constructor)
从某种程度上来讲,可以理解为初始化块是构造器的补充,因为初始化快总是在构造器之前执行,同样也可以对对象初始化.
与构造器不同的是:初始化块只能执行一段固定的代码,不能够像构造器一样接受参数,而且是对类的所有的对象进行初始化.
跟构造器一样的,程序在执行的时候不仅会执行当前类的初始化快和构造器,会一直追溯到object类的初始化快和构造器.先执行父类的初始化块和构造器(先初始化块,再构造器),然后再执行当前类的初始化块和构造器.
- JAVA基础——初始化顺序及相关(集各家言论再自己总结的)
- java 初始化顺序相关总结
- java内存相关及程序初始化顺序
- Java基础总结之类与对象的初始化顺序
- Java 基础总结--初始化顺序1
- java基础(五)------ Java程序中初始化的顺序
- Java基础--初始化顺序
- Java基础-初始化顺序
- java基础初始化顺序
- Java初始化顺序总结
- Java基础巩固之类的初始化顺序
- Java中类的初始化顺序总结
- 关于JAVA Static的初始化顺序(及递归错误)
- Java类及对象初始化的顺序
- java 类及子类的初始化顺序
- Java类的加载及初始化顺序
- JAVA基础知识点(自己总结的)
- JAVA基础知识点(自己总结的)
- Java的内存泄漏(一)
- Hibernate 与 Oracle 11g 的问题
- Delphi2010 DataSnap入门 (二)
- ERP系统BOM详细解析
- VC中DDX/DDV自定义
- JAVA基础——初始化顺序及相关(集各家言论再自己总结的)
- javax.servlet.http.HttpServletRequest cannot be resolved错误解决方案
- VC++中的DDX和DDV(转)
- 中间件的学习与认识(转载)
- 黑马培训前期java基础加强学习日记一
- 发布一个操作oracle的c#类
- 进度条对话框
- Linux top 命令详解
- Delphi2010中DataSnap高级技术(1)—为DataSnap系统服务程序添加描述