何時以及如何正確使用靜態方法?35歲的IT男2019-08-22 22:10:26

要知道什麼時候使用靜態方法,先需要了解靜態方法的定義。

靜態方法或變數是使用Static 修飾的方法或變數。靜態資料存在於記憶體中的方法區,資料載入以後可直接使用。如:A 類中有一個非靜態的 B 方法和靜態的 C 方法,那麼呼叫B方法時需要建立A類的物件,而呼叫C方法時可直接類名加方法名呼叫,無需新建物件。 靜態方法始終佔據記憶體空間,呼叫方便。非靜態相反,具體看情況你自己選擇

例項方法是指需要把類例項化後才能被呼叫的方法,離開了例項的作用範圍,例項方法會隨著例項被回收而無法呼叫。

靜態方法和例項方法的使用場景:

1、從邏輯關係來看

若方法與類的例項不存在邏輯上的聯絡,那麼用靜態方法。反之則最好使用例項化方法。

2、從效能角度:

若方法經常被呼叫,則用靜態方法更佳,因為這樣可以避免頻繁地例項化物件導致的資源佔用,提高效能。

然而,由於靜態的東西,在構造的時候是在堆中聲稱的,在結束之前不會被釋放與改變,會一直佔用記憶體空間,所以不宜有過多的靜態成員。因此若方法不會經常被呼叫,則使用例項方法可能會更好。

3、從執行緒併發的角度考慮:

要考慮方法是否存在嚴重的併發,如果併發的可能性很大,則不適宜使用靜態方法。

如果併發的可能性很小,或者透過簡單的同步操作可以保證執行緒安全,那就可以考慮使用靜態方法,這種情況下,靜態方法要更快,更方便。