1. 程式人生 > >Java內聯函數

Java內聯函數

內聯函數 jvm 希望 子類 資源釋放 出棧 () 規模 運行速度

1.內聯函數就是指函數在被調用的地方直接展開,編譯器在調用時不用像一般函數那樣,參數壓棧,返回時參數出棧以及資源釋放等,這樣提高了程序運行速度。

2.Java語言中有一個keywordfinal來指明那個函數是內聯的,例:

public final void doSomething() {
// to do something
}

該方法在被調用時。會在調用處直接展開使用,從而提高程序運行速度。

此外finalkeyword另一個作用,防止doSomething方法在子類中被覆蓋。假設你希望doSomething是一個終於行為的話。那它應該被設計成final。

內聯不一定好。當被指定為內聯的方法體非常大時,展開的開銷可能就已經超過了普通函數調用調用的時間。引入了內聯反而減少了性能,由於在選擇這個keyword應該謹慎些,只是,在以後高版本號的JVM中,在處理內聯時做出了優化,它會依據方法的規模來確定是否展開調用。

Java內聯函數