public class Hello{
static {
System.out.println("靜態(tài)塊");
}
{
System.out.println("實(shí)例塊");
}
public Hello(){
System.out.println("構(gòu)造方法");
}
public static void main(String []args){
成都創(chuàng)新互聯(lián)服務(wù)緊隨時代發(fā)展步伐,進(jìn)行技術(shù)革新和技術(shù)進(jìn)步,經(jīng)過十余年的發(fā)展和積累,已經(jīng)匯集了一批資深網(wǎng)站策劃師、設(shè)計(jì)師、專業(yè)的網(wǎng)站實(shí)施團(tuán)隊(duì)以及高素質(zhì)售后服務(wù)人員,并且完全形成了一套成熟的業(yè)務(wù)流程,能夠完全依照客戶要求對網(wǎng)站進(jìn)行成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、建設(shè)、維護(hù)、更新和改版,實(shí)現(xiàn)客戶網(wǎng)站對外宣傳展示的首要目的,并為客戶企業(yè)品牌互聯(lián)網(wǎng)化提供全面的解決方案。
}
}
運(yùn)行后是這樣的:
靜態(tài)塊
在main方法里面實(shí)例化一下,即代碼是這樣的:
public class Hello{
static {
System.out.println("靜態(tài)塊");
}
{
System.out.println("實(shí)例塊");
}
public Hello(){
System.out.println("構(gòu)造方法");
}
public static void main(String []args){
Hello hello = new Hello();
}
}
運(yùn)行后是這樣的:
靜態(tài)塊
實(shí)例塊
構(gòu)造方法
通過上面的這兩個例子可以看出來,當(dāng)一個類加載的時候,調(diào)用靜態(tài)塊,當(dāng)實(shí)例化一個對象的時候,實(shí)例塊和構(gòu)造方法被調(diào)用。
然后下面我這樣寫了寫:
先寫了一個父類:
public class Personal{
static{
System.out.println("父類的static塊");
}
{
System.out.println("父類的實(shí)例塊..");
}
public Personal(){
System.out.println("父類的構(gòu)造方法..");
}
}
然后寫了一個子類:
public class Child extends Personal{
static{
System.out.println("子類的static塊");
}
public Child(){
System.out.println("子類的構(gòu)造方法。");
}
{
System.out.println("子類實(shí)例塊..");
}
}
在另外的一個類里面測試:
public class Test{
public static void main(String []args){
Child child = new Child();
}
}
運(yùn)行后得到的結(jié)果是:
父類的static塊
子類的static塊
父類的實(shí)例塊..
父類的構(gòu)造方法..
子類實(shí)例塊..
子類的構(gòu)造方法..
由此可以得到的結(jié)論是:
類的初始化過程是:
1.父類靜態(tài)塊
2.子類靜態(tài)塊
3.父類實(shí)例塊
4.父類構(gòu)造器
5.子類實(shí)例塊
6.子類構(gòu)造器