每天一點積累(一五) 類繼承的載入

2021-08-07 07:25:30 字數 1475 閱讀 3791

之前我們講過 class在jvm 載入要經過 載入、驗證、準備、解析、 初始化五個階段。

現在以類繼承為例來看一下類的載入。

先寫乙個父類。

public class father

public static void aa()

static

public  void bb()

子類繼承於父類

public class son extends father

public static void aa()

static

public  void bb()

}測試方法:

public class expendtest

}那列印順序就會是:

我是父類的靜態塊

我是子類的靜態塊

我是父類構造方法

我是子類構造方法

看到列印結果就可以看到類載入到準備階段會給靜態變數分配記憶體空間(給靜態變數賦值初始化的值),當初始化的時候,會給靜態變數賦相對應的值,然後靜態**塊為類變數賦值,靜態方法和靜態變數都會放在方法區內,靜態變數會在類載入時候賦值,而靜態方法雖然開闢了記憶體但是並沒有例項化,需要在呼叫時候才會例項化。

第二種情況 當父類有有參構造器 子類有參構造器不繼承父類的

public class father

public father(string aaa)

public static void aa()

static

public  void bb()

}public class son extends father

public son(string aaa)

public static void aa()

static

public  void bb()

}public class expendtest

}此時輸出結果為:

我是父類的靜態塊

我是子類的靜態塊

我是父類構造方法

子類有參構造器

結果:當用到子類有參構造器時 因為沒有繼承父類有參構造器,所以缺省會載入父類的無參構造器

第三中 子類構造器繼承 父類構造器時候

public class father

public father()

public static void aa()

static

public  void bb()

}public class son extends father

public son(string aaa)

public static void aa()

static

public  void bb()

}public class expendtest

}此時的執行結果:

我是父類的靜態塊

我是子類的靜態塊

我是父類構造方法aaa

子類有參構造器

每天一點linux命令積累

檢視檔案當前目錄 pwd 在vi編輯時查詢關鍵字 在左下方輸入關鍵字再點回車跳轉到相應位置 如果你要繼續查詢此關鍵字,敲字元 n 就可以繼續查詢了。敲字元n 大寫n 就會向前查詢 安裝nodewget qo bash 之後需要啟用nvm source nvm nvm.sh 啟用完成後,安裝node ...

每天積累一點

最近有一種寫日誌的衝動,其實這種感覺由來已久,只是現在愈加強烈而已。我想每天都留下點東西,只是不想讓自己的記憶淡忘或是消逝 有時想把自己每天的情感都記錄下來,卻想回來卻也是一種極難堅持的事,我有那麼多的感嘆嗎?我除了感想還能做點什麼別的?於是我想到作為即將的it職業人,對技術又比較痴迷,有時也可以談...

每天一點python xlrd

xlrd是python語言中讀取excel的擴充套件工具,可以實現指定表單 指定單元格的讀取。1.讀取excel檔案 workbook xlrd.open workbook file.xls 2.獲取excel中表單數量 workbook.nsheets 3.獲取excel中的乙個表單 workbo...