【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("子类构造函数");}
}
父类静态变量
父类静态代码块
子类静态变量
子类静态代码块
父类非静态变量
父类非静态代码块
父类构造函数
子类非静态变量
子类非静态代码块
子类构造函数

所以,初始化的顺序为:

  1. 父类静态变量
  2. 父类静态代码块
  3. 子类静态变量
  4. 子类静态代码块
  5. 父类非静态变量
  6. 父类非静态代码块
  7. 父类构造函数
  8. 子类非静态变量
  9. 子类非静态代码块
  10. 子类构造函数

java 程序的初始化顺序是怎样的?相关推荐

  1. 彻底搞懂java程序的初始化顺序

    使用场景 在java程序中,当实例化对象时,对象的所在类的所有成员变量首先要进行初始化,只有当所有类成员完成初始化后,才会调用对象所在类的构造函数创建对象. 原则 变量优先于块.静态优先于非静态. 父 ...

  2. Java程序的初始化顺序

    一.使用场景 在Java程序中,当实例化对象时,对象的所在类的所有成员变量首先要进行初始化,只有当所有类成员完成初始化后,才会调用对象所在类的构造函数创建对象. 二.原则 1️⃣变量优先于块.静态优先 ...

  3. java创建对象 的初始化顺序

    java创建对象 的初始化顺序 1.初始化块 初始化块通常写在类的构造方法之前,由花括号括起来,通常包含对成员属性进行初始化的语句: 初始化块分为instance初始化块和static初始化块,初始化 ...

  4. java类成员初始化_简单了解Java类成员初始化顺序

    这篇文章主要介绍了简单了解Java类成员初始化顺序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 类中包含7中成员: 1.静态变量 static 2 ...

  5. Java 类的初始化顺序

    Java 类的初始化顺序 Java中类的初始化顺序是:父类静态代码块-->子类静态代码块-->父类非静态代码块-->父类构造器-->子类非静态代码块-->子类构造器. 测 ...

  6. android 初始化类,Android 常用编程技巧/Java类的初始化顺序 (静态变量、静态初始化块、变量、初始化块、构造器)...

    1.设置屏幕的亮度: WindowManager.LayoutParams lp=getWindow().getAttributes(); lp.screenBrightness=1.0f; getW ...

  7. java静态变量需要初始化吗_» Java静态变量初始化顺序浅谈

    Java 类初始化顺序在网上已经有很多文章了,这里不再谈那么多,仅仅谈下Java静态变量的初始化顺序,如果你是Java高手,并且自认为对这个顺序已经掌握到了炉火纯青的境界,请忽视这篇文章. 前天看了Y ...

  8. Java类的初始化顺序 (静态变量、静态初始化块、变量、初始...

    很有意思的一篇文章 1.没有继承 静态变量->静态初始化块->变量->变量初始化块->构造方法 2.有继承的情况 父类静态变量->父类静态初始化块->子类静态变量- ...

  9. JAVA类加载与初始化顺序

    类的生命周期 7个阶段依次为:Loading Verification Preparation Resolution Initialization Using Unloading 类加载的双亲委派模型 ...

最新文章

  1. 4层板到12层板叠层经典设计方案
  2. 51Nod-1082 与7无关的数【进制+打表】
  3. 25个实用编程小技巧
  4. asp.net 导出Excel 设置格式
  5. jdk入门_JDK 9 REPL:入门
  6. 利用python读取点矢量对应栅格值
  7. VFP下利用API调用帮助
  8. Spring Boot学习总结(4)——使用Springloaded进行热部署
  9. 【二分】Producing Snow @Codeforces Round #470 Div.2 C
  10. 概率图模型笔记(三)条件随机场(CRF)基础
  11. html哪个标签显示第一节,HTML第一节
  12. strcat第二个参数变吗_您能解决这3个(看似)简单的Python问题吗?
  13. 如何打开浏览器的TLS 1.1 TLS 1.2支持
  14. 55. GridPanel中getSelectionModel详解
  15. WinForm界面开发教程——图文并茂的界面设计
  16. java使用xmlWorkerHelper将html转pdf
  17. 增加虚拟android内存,SD卡变RAM 增加虚拟内存方法
  18. BJTU1940 铁憨憨骑士团的回文对称
  19. Python——代码界的大门之一
  20. 一位华裔复活了美国奥数国家队:掌舵 6 年 4 次夺冠,打破中国队“垄断”

热门文章

  1. Visible Lattice Points SPOJ - VLATTICE
  2. YBTOJ洛谷P2387: 魔法森林(LCT)
  3. P3812-[模板]线性基
  4. jzoj3362,bzoj3758-[NOI2013模拟]数数【分段打表,背包,状压】
  5. P5022-旅行【基环树,dfs】
  6. jzoj3464-秀姿势【hash】
  7. P1967,ssl2267-货车运输【树上倍增LCA,最小生成树变形kruskal】
  8. 【2018.3.17】模拟赛之四-ssl1864jzoj1368 燃烧木棒【最短路,Floyd】
  9. AtCoder Beginner Contest 172总结
  10. Another Blog