java-类生命周期(二)
来源:互联网 发布:手机淘宝充值平台 编辑:程序博客网 时间:2024/05/21 17:47
上文介绍了java-类生命周期(一),理论性比较强,觉得太复杂的同学,瞟一下本文的例子加深理解。
先给道题目,看看答对没。
/** * 类加载试验基类 * * @author peter_wang * @create-time 2014-5-14 上午8:41:23 */public class SuperClass { static { System.out.println("call super static method!"); } private SuperHelpClass mSuperSuperClass = new SuperHelpClass(); public SuperClass() { System.out.println("call super constructor"); } public SuperClass(int flag) { System.out.println("call super constructor " + flag); }}
/** * 类加载试验子类 * * @author peter_wang * @create-time 2014-5-14 上午8:43:07 */public class SubClass extends SuperClass { private SuperClass mSuperClassFirst = new SuperClass(1); public SubClass() { System.out.println("call sub constructor"); } /** * @param args */ public static void main(String[] args) { SubClass subClass = new SubClass(); } static { System.out.println("call sub static method!"); } private static SuperClass mSuperClassSecond = new SuperClass(2);}
求执行结果。
原理剖析:
1.启动JVM,执行SubClass的入口main方法,意外发现类没加载,遂用ClassLoader加载.class文件
2.加载完SubClass,执行main之前需要先执行静态块,再执行静态域
3.父类优先于子类执行
4.执行main方法中的new SubClass(),执行父类所有变量初始化,再执行父类构造器
5.执行子类所有变量初始化,最后执行子类构造器
执行结果:
call super static method!call sub static method!call super constructor 2call super constructorcall super constructor 1call sub constructor
1 0
- java-类生命周期(二)
- Java多线程:(二)生命周期
- java Servlet(二)生命周期
- Java 之 线程的生命周期(二)
- java 静态变量生命周期(类生命周期)
- java 静态变量生命周期(类生命周期)
- 组件生命周期(二)
- 组件生命周期(二)
- Activity生命周期(二)
- 组件生命周期(二)
- Activity生命周期(二)
- Activity生命周期(二)
- Activity生命周期(二)
- unity生命周期(二)
- 深入java虚拟机(二) 类的加载机制/生命周期
- Java多线程(二)、线程的生命周期和状态控制
- Java多线程(二)、线程的生命周期和状态控制
- Java多线程(二)、线程的生命周期和状态控制
- Linux top命令显示详解
- linux网络性能测试工具Iperf使用介绍
- 黑马程序员_java交通灯管理系统
- 对于网络人民的几点建议,请拍砖
- 在Cocos2d-x里如何制作各种按钮
- java-类生命周期(二)
- Aptana Studio3 添加jQuery代码提示
- solr分词器
- JS实现的单向链表
- UVA 11076 Add Again
- cocos2d-x3.x实现屏幕画线并添加刚体属性
- 驱动学习---PAE--virtual address to physics address
- 做为SEO要乐在其中
- 浏览器加载本地图片并预览