在学习Java基础的时候对Java初始化也就草草了事,后来还在初始化问题上载过跟头。现在好了伤疤没有忘了疼,好好的琢磨了下Java初始化问题,还是满复杂的,粗略的掌握了Java初始化的知识。
下面的代码演示了Java初始化顺序:
public
class
Test2
extends
Test1
{
//4.初始化块
{
System.out.print("1/n");
}
//6.子类构造器
Test2(){
System.out.print("2/n");
}
//2.子类静态初始化块
static{
System.out.print("3/n");
}
//5.初始化块
{
System.out.print("4/n");
}
public static void main(String[] args) {
//即使newTest2实例,静态块初始化也进行
new Test2();
}
}
class Test1 {
//3.父类构造器
Test1(){
System.out.print("5/n");
}
//1.父类静态初始化块
static{
System.out.print("6/n");
}
}
//4.初始化块
{
System.out.print("1/n");
}
//6.子类构造器
Test2(){
System.out.print("2/n");
}
//2.子类静态初始化块
static{
System.out.print("3/n");
}
//5.初始化块
{
System.out.print("4/n");
}
public static void main(String[] args) {
//即使newTest2实例,静态块初始化也进行
new Test2();
}
}
class Test1 {
//3.父类构造器
Test1(){
System.out.print("5/n");
}
//1.父类静态初始化块
static{
System.out.print("6/n");
}
}
我的看法是,初始化虽然是贼拉基础的内容。为了避免以后在小问题上吃大亏还是好好的研究为妙。还有很多就不奉上了,都是零碎的概念规律什么的。