5 方法執行時的棧幀

2021-10-01 19:52:32 字數 583 閱讀 2967

方法執行時通過區域性變數表完成引數值到引數變數列表的傳遞過程。非static方法第乙個slot儲存物件的例項(也就是this引用)。

slot是可以重用的,slot可以在超出變數作用域後存放之後的變數。

區域性變數不像類變數一樣存在準備階段(附上系統預設的初值),因此必須進行初始化

方法退出時相當於把當前棧幀出棧:

恢復上層方法的區域性變數表、運算元棧。

並把有的返回值壓入呼叫者的運算元棧中。

調整pc暫存器。

執行時確認直接引用:(稱作分派)

靜態型別匹配順序:char->int->long->float->double->包裝類->父類或介面->可變長引數

因此多型中,物件呼叫乙個重寫過的方法時是優先呼叫自身重寫的版本,其次才是父類的。

因為動態連線每次都需要查詢因此在方法區中建立了乙個名叫虛方法表的資料結構。以提高尋找效率。

它並不是記錄所有方法的表。它是為動態分派服務,不會記錄靜態方法和建構函式和私有方法。

Linux下5種動態庫執行時搜尋路徑的方法

方法一 在配置檔案 etc ld.so.conf中指定動態庫搜尋路徑。可以通過編輯配置檔案 etc ld.so.conf來指定動態庫的搜尋路徑,該檔案中每行為乙個動態庫搜尋路徑。每次編輯完該檔案後,都必須執行命令ldconfig使修改後的配置生效。我們通過例1來說明該方法。例1 我們通過以下命令用源...

Linux下5種動態庫執行時搜尋路徑的方法

方法一 在配置檔案 etc ld.so.conf中指定動態庫搜尋路徑。可以通過編輯配置檔案 etc ld.so.conf來指定動態庫的搜尋路徑,該檔案中每行為乙個動態庫搜尋路徑。每次編輯完該檔案後,都必須執行命令ldconfig使修改後的配置生效。我們通過例1來說明該方法。例1 我們通過以下命令用源...

測試程式執行時間的方法

程式的效能好壞是由其執行時間和空間占用情況決定的,而執行時間是主要的指標。因此設計出新的演算法時,根據時間複雜度確定新的演算法和傳統演算法的優劣,此時需要在程式中新增 段,測試程式執行時間。這裡介紹兩種測試程式執行時間的方法。法1 include include include int main e...