关于java类的初始化过程
来源:互联网 发布:司法考试网络课程 编辑:程序博客网 时间:2024/06/12 07:21
1.静态变量加载时机和顺序
Java文件经过编译生成相应.class文件,当执行时把.class文件加载到内存(方法区),先加载父类,然后是子类,静态变量和静态代码块在方法区初始化,也就是类实例没产生时,类加载的时候就产生了,静态变量和静态代码块每个类中只有一份,以后各个实例变量中的静态变量就是方法区中的那一份(静态变量和静态代码块只初始化一次),也就是说父类的静态变量先加载,然后是子类的静态变量
2.成员变量的加载顺序
当你new出一个子类对象时,程序先调用子类构造器中的super方法访问父类的构造器,而父类要调用它父类的构造方法调用object的构造器,调用完后,回到父类初始化父类的成员变量,初始化完成后,执行父类构造器的方法体,执行完后,回到子类,初始化化子类的成员变量,
初始化化完成后,执行子类构造器的方法体
所以类的初始化过程是这样的
假设A类继承B类,B类继承C类,则当我们创建A类的对象时,其初始化顺序如下:
C类的静态变量和静态代码块(按书写顺序初始化)
B类的静态变量和静态代码块(按书写顺序初始化)
A类的静态变量和静态代码块(按书写顺序初始化)
C类的实例变量
C类的构造方法
B类的实例变量
B类的构造方法
A类的实例变量
A类的构造方法
对于静态变量和静态代码块,只会初始化一次
- 关于java类的初始化过程
- 关于java类初始化过程的一道试题的解析
- Java 关于含有继承类的成员初始化过程讲解
- java类的初始化过程
- JAVA类的初始化过程
- Java类的初始化过程
- Java 类的初始化过程
- Java类的初始化过程
- Java类的初始化过程
- Java类的初始化过程
- Java类的初始化过程
- JAVA 对象的初始化过程和类的初始化过程
- Java学习笔记(十三):关于子类初始化的过程
- JAVA类初始化过程
- java类初始化过程
- Java类初始化过程
- java类初始化过程
- Java类初始化过程
- 使用Eclipse构建Maven项目 (step-by-step)
- AdMob demo code.
- POJ 2453二进制又一重要用法
- Mvc示例之六---bs软件的路径
- oracle
- 关于java类的初始化过程
- android错误之解析包时出现问题(一)
- hdu 2647 Reward 拓扑排序
- mysql中order by优化的那些事儿
- nextSibling和previousSibling中浏览器的兼容问题
- hdu 4443 Lost
- Newton迭代法例题
- oracle10g 手工建库 (非OMF)
- Leetcode Remove Duplicates from Sorted Array