parent main方法 println () 类成员 -- sys div 开始
本文主要演示Java类的初始化顺序
对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。
- public class InitialOrderTest {
- /* 静态变量 */
- public static String staticField = "静态变量";
- /* 变量 */
- public String field = "变量";
- /* 静态初始化块 */
- static {
- System.out.println( staticField );
- System.out.println( "静态初始化块" );
- }
- /* 初始化块 */
- {
- System.out.println( field );
- System.out.println( "初始化块" );
- }
- /* 构造器 */
- public InitialOrderTest()
- {
- System.out.println( "构造器" );
- }
- public static void main( String[] args )
- {
- new InitialOrderTest();
- }
- }
运行以上代码,我们会得到如下的输出结果:
- class Parent {
- /* 静态变量 */
- public static String p_StaticField = "父类--静态变量";
- /* 变量 */
- public String p_Field = "父类--变量";
- protected int i = 9;
- protected int j = 0;
- /* 静态初始化块 */
- static {
- System.out.println(p_StaticField);
- System.out.println("父类--静态初始化块");
- }
- /* 初始化块 */
- {
- System.out.println(p_Field);
- System.out.println("父类--初始化块");
- }
- /* 构造器 */
- public Parent() {
- System.out.println("父类--构造器");
- System.out.println("i=" + i + ", j=" + j);
- j = 20;
- }
- }
- public class SubClass extends Parent {
- /* 静态变量 */
- public static String s_StaticField = "子类--静态变量";
- /* 变量 */
- public String s_Field = "子类--变量";
- /* 静态初始化块 */
- static {
- System.out.println(s_StaticField);
- System.out.println("子类--静态初始化块");
- }
- /* 初始化块 */
- {
- System.out.println(s_Field);
- System.out.println("子类--初始化块");
- }
- /* 构造器 */
- public SubClass() {
- System.out.println("子类--构造器");
- System.out.println("i=" + i + ",j=" + j);
- }
- /* 程序入口 */
- public static void main(String[] args) {
- System.out.println("子类main方法");
- new SubClass();
- }
- }
父类--静态变量
父类--静态初始化块
子类--静态变量
子类--静态初始化块
子类main方法
父类--变量
父类--初始化块
父类--构造器
i=9, j=0
子类--变量
子类--初始化块
子类--构造器
i=9,j=20
子类的静态变量和静态初始化块的初始化是在父类的变量、初始化块和构造器初始化之前就完成了。静态变量、静态初始化块,变量、初始化块初始化了顺序取决于它们在类中出现的先后顺序。
jvm系列学习之--Java类的初始化顺序
parent main方法 println () 类成员 -- sys div 开始
原文:http://www.cnblogs.com/NewMan13/p/7755338.html
来源: http://www.bubuko.com/infodetail-2373198.html