Java之块的执行顺序
来源:互联网 发布:网络商标注册 编辑:程序博客网 时间:2024/06/05 19:41
今天遇到一个问题就是一个类的静态属性,静态块,构造块以及构造方法的执行顺序是怎样的,于是写一个demo测试一下。
定义一个Person类
public class Person { private static User mUser = new User("Person"); static { System.out.println("Person静态块"); } { System.out.println("Person构造块"); } public Person() { System.out.println("Person()"); } public static void main(String[] args) throws Exception { new Person(); }}
这里定义一个Person类,他有一个静态属性User 之所以这样做是为了打印静态属性的执行顺序,还有静态块,构造块,以及默认的构造方法,以及一个main函数。很简单,下面给出User类的代码
public class User { public User(String come) { System.out.println(come + "User()"); }}
下面我们看看运行main函数执行结果如下:
发现执行的顺序是:
静态属性 –> 静态块 –> 构造块 –> 构造方法
下面我们再来看看,如果Person有一个子类,那么执行结果会怎样。
定义一个Student 继承至 Person()
public class Student extends Person { private static User mUser = new User("Student"); static { System.out.println("Student静态块"); } { System.out.println("Student构造块"); } public Student() { System.out.println("Student()"); }}
在 Person的main 方法运行:
new Student();
结果如下:
结果表明:
先执行 父类的静态属性–>父类的静态块–>子类的静态属性–>子类的静态块–>父类的构造块–>父类的构造方法–>子类的构造块–>子类的构造方法
0 0
- Java之块的执行顺序
- Java代码块的执行顺序
- Java中自由块的执行顺序
- java基础:代码块的执行顺序
- Java中初始块的执行顺序
- java静态块的执行顺序
- JAVA基础----代码块的执行顺序
- java中代码块的执行顺序
- java代码块的执行顺序
- Java代码块的执行顺序
- Java初始代码块的执行顺序
- Java中代码块的执行顺序
- java 静态块与非静态块的执行顺序
- java代码块及代码块的执行顺序
- Java中构造函数、static块、{}块的执行顺序
- java static块和非static块的执行顺序
- java静态块,普通块,构造函数的执行顺序
- Java代码块执行顺序
- CodeForces 4A Watermelon(太水了。。。。。)
- 安卓菜鸟开发笔记简易窃听器
- 如何跨UI实现功能
- HDU 2767 强联通分量
- c++第六次上机实验-项目2-数组合并
- Java之块的执行顺序
- iOS学习之Persist Data
- FFmpeg实用命令
- 5月23号 硕士毕业预答辩关于ppt的相关要求
- hrbust 1375 The Active Leyni【暴力打表+递推+矩阵快速幂】
- U盘安装CentOS7遇到:init... timeout
- [Java]ThreadPoolExecutor源码分析
- Spring-mybatis的整合
- ColorDescriptor software v4.0 一个提取颜色特征描述子的软件包