java 程序的初始化顺序是怎样的?
来源:互联网 发布:开发类似唯品会软件 编辑:程序博客网 时间:2024/09/21 06:33
【0】README
1)本文 转自“ java 程序员面试笔试宝典”, 这个书有点意思;
【1】java程序初始化遵循三个原则(rule)
r1)静态变量 优先于 非静态变量;
r2)父类优先于子类进行初始化;
r3)按照成员变量的定义顺序进行初始化;
【2】荔枝如下:
package com.mytest;public class MyTest1 {public static void main(String[] args) {new Child();}}class Father {private static String staticV = "父类静态变量"; // 1 private String nonStaticV = "父类非静态变量"; // 5static{ // 2System.out.println(staticV);System.out.println("父类静态代码块");}{ // 6System.out.println(nonStaticV);System.out.println("父类非静态代码块");}public Father() { // 7System.out.println("父类构造函数");}}class Child extends Father{private static String staticV = "子类静态变量"; // 3private String nonStaticV = "子类非静态变量"; // 8static{ // 4System.out.println(staticV);System.out.println("子类静态代码块");}{ // 9System.out.println(nonStaticV);System.out.println("子类非静态代码块");}public Child() { // 10System.out.println("子类构造函数");}}
父类静态变量父类静态代码块子类静态变量子类静态代码块父类非静态变量父类非静态代码块父类构造函数子类非静态变量子类非静态代码块子类构造函数
所以,初始化的顺序为:
- 父类静态变量
- 父类静态代码块
- 子类静态变量
- 子类静态代码块
- 父类非静态变量
- 父类非静态代码块
- 父类构造函数
- 子类非静态变量
- 子类非静态代码块
- 子类构造函数
0 0
- java 程序的初始化顺序是怎样的?
- Java程序初始化的顺序是怎样的。
- 《Java程序员面试笔试宝典》之Java程序初始化的顺序是怎样的
- 《Java程序员面试笔试宝典》之Java程序初始化的顺序是怎样的
- java程序初始化的顺序是怎么样的?
- JAVA程序初始化的顺序是怎么样的
- java程序初始化的顺序
- Java程序初始化的顺序
- Java程序的初始化顺序
- java程序初始化的顺序
- java程序初始化的顺序
- Java程序的初始化顺序
- Java程序初始化的顺序
- 简单测试java里一个对象的初始化是按怎样的顺序执行的
- Java程序运行的初始化顺序
- Java初始化的顺序
- JAVA的初始化顺序
- JAVA的初始化顺序
- 队列
- memcache集群服务:memagent配置使用
- SAP PM概念学习
- 如何查看自己运行ubuntu是32位还是64位
- 天才住在我家隔壁
- java 程序的初始化顺序是怎样的?
- ios developer tiny share-20160926
- Codevs1082 线段树练习 3 Lazy
- Velocity教程
- 安装VMware虚拟机及在虚拟机上安装Linux系统(Ubuntu)
- 【bzoj1218】 [HNOI2003]激光炸弹
- Symfony2学习视频地址
- ajax无刷新下载文件 虚拟form
- 风应该是凉的