理解代码执行顺序
来源:互联网 发布:js 同意协议 编辑:程序博客网 时间:2024/06/09 18:18
这篇文章没有实际作用,不过为了让自己这笨脑袋在忘了的时候看到这段代码能记得是怎样的顺序。
package top.CSY.www;public class App{ private static App a=new App(); private subClass sub=new subClass(); static { System.out.println("3"); } public App() { System.out.println("4"); } public static void main(String[] args) { System.out.println("Hello"); }}//父类class surperClass{ surperClass() { System.out.println("构造"); }}//子类class subClass extends surperClass{ static { System.out.println("1"); } subClass() { System.out.println("2"); }} //运行结果???
下面看一下运行结果,并分析如何执行。
/*
1 :App类依赖于subClass类,所以得先把subClass类的字节码加载进JVM.
构造 :子类执行构造器时,需先调用父类无参构造.
2
4 :static初始化的代码/代码块,是在类的字节码加载进JVM时一并加载的.
3
Hello :main方法.
*/
值得一提的是:非static字段在初始化时是在构造器中优先执行的;我们可以看一下编译时java底层的代码.
public class App{ private static App a = new App(); private subClass sub; public App() { sub = new subClass(); System.out.println("4"); } public static void main(String args[]) { System.out.println("Hello"); } static { System.out.println("3"); }}
由此可清晰的看到代码是如何运行得到结果的。
阅读全文
0 0
- 理解代码执行顺序
- 理解static执行顺序
- 代码执行顺序
- javascript 代码执行顺序
- java代码执行顺序
- Java代码执行顺序
- js代码 执行顺序
- 代码块执行顺序
- Java代码执行顺序
- 代码执行顺序
- 代码执行顺序
- java代码执行顺序
- JAVA代码执行顺序
- Java代码执行顺序
- 代码块执行顺序
- 静态代码执行顺序
- Java代码执行顺序
- 代码执行顺序
- centos7 cdh5.8使用python 的 pysh2连接hiveServer2
- jquery 完成数据的增删改,动态操作表格数据。
- 不管你信不信,反正我信了
- 记录:Redis视图工具
- Navicat 连接MySQL数据不能新建查询,提示文件名、目录名或卷标语法不正确
- 理解代码执行顺序
- 基于Jenkins和Github的持续集成环境安装与学习
- linux常用命令(常更)备用
- Linux实用命令总结
- tab切换
- ios中的导航栏的隐藏方式
- 如何在BIGEMAP中打开自有数据(AutoCAD shp kml excel、txt、dat)
- 字符串
- Selective Search for Object Recoginition