Java类加载过程后,成员变量的初始化。
来源:互联网 发布:更改管家婆erp端口 编辑:程序博客网 时间:2024/06/04 20:05
Java类的加载和成员变量初始化,创建对象的顺序。
class X {Y b=new Y();X() {System.out.println("X");}}class Y {Y() {System.out.println("Y");}}public class Z extends X {Y y=new Y();Z() {super();System.out.println("Z");}public static void main(String[] args) {new Z();}}//YXYTest以上代码输出结果为YXYZ
看以看出,public类加载后并没有初始化成员变量y。在main方法使用new Z()创建对象时,先去构建class X父类对象,此时父类X的成员变量初始化输出Y,然后构造方法输出X,以后再进行class Z中y成员变量初始化输出Y,紧接着Z()中的输出语句输出Z。
网上找来的,可能是最好的解释了。
-------------------------------------------------------------------------------------------------------
在类被继承的情况下,初始化的顺序:
1.初始化子类,类加载器在加载它的时候会发现它继承了另外一个类,类加载器要先把父类加载进来。于是开始加载父类,父类的静态部分被按顺序加载。之后子类的静态部分被加载。这样的顺序是考虑子类的静态域可能会依赖父类的静态域;
2.父类的非静态部分被加载;
3.子类指定的父类的构造器;
4.子类的非静态部分被加载;
5.子类构造器的其余部分。
------------------------------------------------------------------------------------------------
0 0
- Java类加载过程后,成员变量的初始化。
- Java中成员变量的初始化过程
- Java类加载及变量初始化过程
- Java类加载及变量初始化过程
- Java类变量和成员变量初始化过程
- Java类变量和成员变量初始化过程
- java 类变量和成员变量初始化过程
- Java类变量和成员变量初始化过程
- Java类变量和成员变量初始化过程
- Java类变量和成员变量初始化过程
- Java类成员变量的初始化顺序
- java类成员变量的初始化顺序
- Java类成员变量的初始化顺序
- Java 类加载顺序与成员变量初始化
- Java成员变量的初始化
- Java成员变量的初始化
- java 中类初始化,构造方法,静态成员变量,静态块的加载顺序
- android中的类加载和静态成员变量的初始化
- [LeetCode] Search a 2D Matrix
- webview 上 postUrl 发送参数过程中数据丢失或错误 的问题
- Windows 下OpenSSL 安装详解 +图解
- 数据库大数据量和高并发量设计参考文献 sharding
- 命令窗口修改编码,CMD编码修改方法
- Java类加载过程后,成员变量的初始化。
- MVC Anti-XSS方案
- (转)SQL 优化原则
- Android环境搭建及验证是否搭建成功
- 使用UniversalImageLoader 加载网络图片并附带缓存效果
- Linux系统下的10款非常优秀的POS开源软件
- 无论如何都安装不了安卓手机的 ADB 驱动,导致 USB 调试无法连接问题
- Caffe源码剖析2-Softmax_Loss
- easyui datagrid 弹出窗口