java-类生命周期(二)
2024-10-19 22:16:31
上文介绍了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 2
call super constructor
call super constructor 1
call sub constructor
最新文章
- C语言中的system函数参数及其作用
- C#中将DataTable转成List
- 1.5 STL中大小相等的概念
- 2013年7月底至8月初51Aspx源码发布详情
- Recover damage pictures to see the crime scene
- no symbol version for module_layout
- wamp的安装使用(转)
- 百度地图 iOS SDK - 坐标转换方法
- PHP 分析1
- python自学基础1week
- echarts图表里label文字过长换行的方法
- Ubuntu忘记root密码怎么办?
- 在Windows环境下搭建Nginx文件服务器(简单实用版)
- Sublime Text3 离线安装Package Control并使用GBK编码 --转自https://blog.csdn.net/swhard/article/details/78930371
- CF961G Partitions
- 基于Docker+Prometheus+Grafana监控SpringBoot健康信息
- composer 用法
- o(1)取b >; a,且b的二进制中1的个数等于a二进制中1的个数,且使b最小
- 代码实现自定义TableView
- this &; super
热门文章
- oracle表类似:BIN$dJ5h8mA4Lr/gQAB/AQB0oA==$0 TABLE
- [BZOJ 2100] Apple Delivery
- [JavaEE] Apache Maven 入门篇(上)
- BZOJ-4706 B君的多边形 OEIS
- Git Learning Part III - working remotely (Github)
- vue路由history模式下打包node服务器配置
- vue-cli简介(中文翻译)
- MSSQL数据库设置单用户模式后无法连上解决办法
- ArcGIS Javascript API 加载高德在线地图扩展
- Linux 内核剖解(转)