初始化:静态先于非静态,父类先于子类,字段先于构造函数。论证程序如下:
package kxq;
public class Clazz4StaticInitializeTest extends Super4StaticInitializeTest{
static {
System.out.println("Static initialize");
}
public static int i;
public int j;
{
System.out.println("No-Static initialize");
}
public Clazz4StaticInitializeTest(){
System.out.println("Constructor initialize");
}
}
class Super4StaticInitializeTest{
static {
System.out.println("Static initialize in super class");
}
{
System.out.println("None-Static initialize in super class");
}
public Super4StaticInitializeTest() {
System.out.println("super contructor initialize");
}
}
===========TestCase========
package kxq;
import org.junit.Test;
public class StaticInitialize {
@Test
public void test_case1() throws ClassNotFoundException{
Class<?> clazz = java.lang.Class.forName(
"kxq.Clazz4StaticInitializeTest", false, this.getClass().getClassLoader());
System.out.println("============case1 done");
}
//============case1 done
@Test
public void test_case2() throws ClassNotFoundException{
Class<?> clazz = java.lang.Class.forName(
"kxq.Clazz4StaticInitializeTest", true, this.getClass().getClassLoader());
System.out.println("============case2 done");
}
//Static initialize in super class
//Static initialize
//============case2 done
@Test
public void test_case3(){
int k = Clazz4StaticInitializeTest.i;
System.out.println("===========case3 done");
}
//Static initialize in super class
//Static initialize
//===========case3 done
@Test
public void test_case4(){
Clazz4StaticInitializeTest cls = new Clazz4StaticInitializeTest();
System.out.println("============case4 done");
}
}
//Static initialize in super class
//Static initialize
//None-Static initialize in super class
//super contructor initialize
//No-Static initialize
//Constructor initialize
//============case4 done
分享到:
相关推荐
介绍一下java程序初始化的顺序,这会对您以后的开发所有帮助
Java初始化顺序1
详细讲解java类中静态变量,普通标量,对象、基本类型的初始化顺序。
作为一名程序员必须知道Java初始化顺序......
本篇文章主要介绍了Spring 中如何控制2个bean中的初始化顺序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
一个java代码初始化具体过程的的demo
C++和Java初始化顺序的比较代码, 详细的解说请参考博客地址, http://blog.csdn.net/ostrichmyself/archive/2010/11/25/6035538.aspx
对java类初始化以及顺序,详解,由于转载仅供大家参考!
具体内容见博客
详细介绍了Java的静态成员变量、静态数据块、非静态成员变量和非静态成员变量等初始化顺序
java面试题-类的初始化顺序.doc 大家在去参加面试的时候,经常会遇到这样的考题:给你两个类的代码,它们之间是继承的关系,每个类里只有构造器方法和一些变量,构造器里可能还有一段代码对变量值进行了某种运算,...
java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...
“礼让”原则学习Java对象初始化顺序
java对象的初始化顺序[参考].pdf
对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器
在Java中,类装载器把一个类装入Java虚拟机中,要经过三个步骤来完成:装载、链接和初始化,网上关于Java中对象初始化顺序的文章很多,这篇文章我们将详细介绍Java中对象初始化顺序。有需要的可以参考学习。
JAVA面试题解惑系列(一)——类的初始化顺序-JAVA程序员JAVA工程师面试必看
JAVA面试题解惑系列类的初始化顺序JAVA程序员JAVA工程师面试必看.pdf