java程序初始化过程
2017-07-05 16:57
453 查看
以下程序执行的结果是:
答案C
初始化过程:
1. 初始化父类中的静态成员变量和静态代码块 ;
2. 初始化子类中的静态成员变量和静态代码块 ;
3.初始化父类的普通成员变量和代码块,再执行父类的构造方法;
4.初始化子类的普通成员变量和代码块,再执行子类的构造方法;
(1)初始化父类的普通成员变量和代码块,执行 Y y=new Y(); 输出Y
(2)再执行父类的构造方法;输出X
(3) 初始化子类的普通成员变量和代码块,执行 Y y=new Y(); 输出Y
(4)再执行子类的构造方法;输出Z
所以输出YXYZ
编辑于 2015-10-12 10:57:43回复(7)
47
菜小豆
1.父类静态代码块 ( java虚拟机加载类时,就会执行该块代码,故只执行一次)
2 .子类静态代码块 ( java虚拟机加载类时,就会执行该块代码,故只执行一次)
3. 父类属性对象初始化
4.父类普通代码块(每次new,每次执行 )
5. 父类构造函数(每次new,每次执行)
6.子 类 属性对象初始化
7.子类普通代码块(每次new,每次执行 )
8.子 类构造函数(每次new,每次执行)
初始化过程:
1. 初始化父类中的静态成员变量和静态代码块 ;
2. 初始化子类中的静态成员变量和静态代码块 ;
3.初始化父类的普通成员变量和代码块,再执行父类的构造方法;
4.初始化子类的普通成员变量和代码块,再执行子类的构造方法;
(1)初始化父类的普通成员变量和代码块,执行 Y y=new Y(); 输出Y
(2)再执行父类的构造方法;输出X
(3) 初始化子类的普通成员变量和代码块,执行 Y y=new Y(); 输出Y
(4)再执行子类的构造方法;输出Z
所以输出YXYZ
编辑于 2015-10-12 10:57:43回复(7)
47
菜小豆
1.父类静态代码块 ( java虚拟机加载类时,就会执行该块代码,故只执行一次)
2 .子类静态代码块 ( java虚拟机加载类时,就会执行该块代码,故只执行一次)
3. 父类属性对象初始化
4.父类普通代码块(每次new,每次执行 )
5. 父类构造函数(每次new,每次执行)
6.子 类 属性对象初始化
7.子类普通代码块(每次new,每次执行 )
8.子 类构造函数(每次new,每次执行)
相关文章推荐
- java程序在执行过程中,类,对象以及它们成员加载、初始化的顺序如下:
- Java程序初始化过程
- java 程序加载过程---3--类中申明同时申明类的静态对象 创建类的实例 访问类的静态变量 调用类的静态方法 使用反射方法 初始化类的子类对象 直接使用java.exe 调用某个类
- Java程序初始化过程中方法覆盖问题
- 黑马程序员——Java程序的初始化过程详解
- Java 程序初始化过程详解 -转
- 举例说明一个 java程序的加载,初始化以及运行过程
- Java初始化顺序总结及其程序执行过程图- 静态变量、静态代码块、成员变量、构造函数
- JAVA程序初始化的过程
- 一个Java小程序,帮助理解Java继承中的初始化过程
- java程序初始化过程详解
- 解析Java类和对象的初始化过程
- Java小知识 对象创建和初始化过程,堆:栈区别
- 如何在JAVA程序中使用Struct一次传入多条数据给Oracle的存储过程。
- 一个Java程序的执行过程
- Java:对象创建和初始化过程
- Java程序初始化顺序
- 子类的创建及初始化过程_Thinking in Java(4)_读书笔记(1)
- [转]JAVA中对象创建和初始化过程
- java对象初始化过程