Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
2024-10-19 15:31:56
结论:执行的大致顺序如下,
(1) 在一个不存在继承的类中:初始化static变量,执行static初始化块-->初始化普通成员变量(如果有赋值语句),执行普通初始化块-->构造方法
(2)在一个存在继承的类中:初始化父类static成员变量,运行父类static初始化块-->初始化子类static成员变量,运行子类static初始化块-->初始化父类实例成员变量(如果有赋值语句),执行父类普通初始化块-->父类构造方法-->初始化子类实例成员变量(如果有赋值语句)及普通初始化块-->子类构造方法。
测试代码如下:(通过断点查看代码执行顺序)
public class Student {
public static int age=11;
public static String name="lucky";
public String address="天台";
static {
System.out.println("我是静态代码块");
}
public Student(){
System.out.println("我是构造函数");
}
public static void test(){
System.out.println(name);
System.out.println(age);
}
} public class Sequence {
public static void main(String[] args) {
//Student.test();
Student student=new Student();
}
}
转自:https://blog.csdn.net/yuxin6866/article/details/52245765
最新文章
- html5多出来的字自动隐藏并显示...
- EmptyResultDataAccessException
- JS-鼠标经过显示二级菜单
- docker image重命名
- mysqldump: Couldn't execute 'show table status '解决方法
- vue2.0 transition -- demo实践填坑
- SPOJ962 Intergalactic Map(最大流)
- C#抽象类及其方法的学习【转】
- Android最佳性能实践(二)——分析内存的使用情况
- HDU 4358 莫队算法+dfs序+离散化
- <;未测>;源码升级安装glibc和rpm升级glibc
- Cacti添加IO模板并监控磁盘IO
- 35,000FT大气压力的问题
- Mysql高级之索引
- [转]How to create an anonymous IDA PRO database (.IDB)
- Nginx正向代理让无法直接上网的机器通过代理上网
- R语言:利用caret包中的dummyVars函数进行虚拟变量处理
- Angular4 后台管理系统搭建(10) - 做一个通用的可跨域上传文件的组件
- python初识(二)
- Dynamics 365 Online-Security Updates On TLS 1.2