分析下面的代码执行数顺序
来源:互联网 发布:淘宝的推广方式 编辑:程序博客网 时间:2024/05/20 03:07
// 分析下面代码的打印public class MainClass { public static void main(String[] args) { House h = new House(); h.f(); }}class Window { Window(int marker) { System.out.println("Window(" + marker + ")"); }}class House { Window w1 = new Window(1); House() { System.out.println("House()"); w3 = new Window(33); } Window w2 = new Window(2); void f() { System.out.println("f()"); } Window w3 = new Window(3);}
知识点:代码加载进java虚拟机的顺序
代码在编译的时候,最先进入虚拟机的是静态代码块,之后是静态方法和静态字段,随后寻找主函数,从主函数中按顺序执行。
有以上代码可知:没有静态方法,所以直接找main函数开始执行。
执行时,第一句是创建一个对象,注意:创建对象时需要调用对象所在的类的构造方法,无参的调无参,有参的调用有参的。
调到House类中按顺序执行所有的无关代码和构造方法,第一句是创建一个Window的对象,所以跳到Window的类中,由于创建的是一个有参的Window对象,就调用的是有参的Window构造方法。打印Window(1)。
h.f();最后调用House的f()方法。
打印结果
0 0
- 分析下面的代码执行数顺序
- 定:定时执行下面的代码 20140729
- 下面代码执行的结果是多少?
- java代码的执行顺序
- c++ 代码的执行顺序
- 静态代码的执行顺序
- Java代码的执行顺序
- js代码的执行顺序
- javascript代码的执行顺序
- Java代码的执行顺序
- 代码块的执行顺序
- Java代码的执行顺序
- Java代码的执行顺序
- SQL 的执行顺序分析
- 最大数 -蓝桥杯 递归的执行顺序
- UITableView回调函数的执行顺序
- OT源代码的分析,OrtHello 迟早攻破你 (十三)ortHello的代码执行顺序
- 泛型 要注意的地方 下面的代码不能执行
- VIM常用指令篇
- Linux系统的命令别名功能
- JAVA基础【1.2】《Java核心技术1》Java程序设计概述-Java JDK1.5新特性【收集】
- H5页面支持拍照选择图片
- 注册工厂模式
- 分析下面的代码执行数顺序
- Python KMeans聚类分析
- c语言获取当前路径
- MySQL(8):视图和索引
- iOS开发之有间距的UITableViewCell
- conExcepression用法
- OpenStack网络指南(24)基于角色的访问控制 (RBAC)
- LeetCode Integer to Roman
- ANDROID设备无手机助手adb连接