Java基礎(二) 靜態類和單例模式的區別

2021-09-18 02:58:15 字數 710 閱讀 2082

單例模式指的是在應用的整個生命週期內只能存在乙個例項。***單例模式是一種被廣泛使用的設計模式。他有很多好處,能夠避免例項物件的重複建立,減少建立例項的系統開銷,節省記憶體。

靜態類就是乙個類裡面都是靜態方法和靜態field,構造器被private修飾,因此不能被例項化。

單例在系統中乙個類只有乙個例項。即乙個類只有乙個物件例項;

靜態類只是提供給你很多靜態方法,這些方法不用建立物件,通過類就可以直接呼叫。

單例模式的靈活性更高,方法可以被重寫(override);

靜態類因為都是靜態方法,所以不能被override。

如果是乙個非常重的物件,單例模式可以懶載入,靜態類就無法做到。

1.不屬於某特定物件的方法比如工具方法數學方法之類的會設計成靜態方法。

2.如果乙個方法和他所在類的例項物件無關(我的理解是:不依賴其他類例項,也沒有繼承和多型等關係),那麼它就應該是靜態的,否則就應該是非靜態。因此像工具類,一般都是靜態的。

3.如果不滿足上面一條的條件,需要時非靜態的,但是在建立類時又只需要維護乙份例項時,就需要用單例模式。

1、為什麼工具方法寫成靜態方法而不是單例模式?

答:個人理解:如果使用單例類,需要考慮執行緒同步的情況。而靜態方法中,如果沒有共享變數,則不需要考慮執行緒安全問題。

另外附上靜態**在記憶體中的呼叫過程:

靜態類和單例模式區別

單例模式限定為不是全用靜態函式實現的。1。使用的方便性 如果需要初始化工作,單例模式可以在建構函式裡面完成,全靜態函式的類需要乙個額外的函式來完成初始化工作,而且使用者如果沒有呼叫這個initialize函式,那麼後續的操作就會有問題,建構函式會被預設呼叫,所以使用起來比較簡單,對使用者做出了最少的...

靜態類和單例模式區別

觀點一 單例 單例模式比靜態方法有很多優勢 首先,單例可以繼承類,實現介面,而靜態類不能 可以整合類,但不能整合例項成員 其次,單例可以被延遲初始化,靜態類一般在第一次載入是初始化 再次,單例類可以被整合,他的方法可以被覆寫 最後,或許最重要的是,單例類可以被用於多型而無需強迫使用者只假定唯一的例項...

java基礎 單例模式

單例模式 singleton模式 乙個類有且僅有乙個例項,並且自行例項化向整個系統提供 公開 具體實現的角度來說 構造方法私有化 靜態屬性指向例項 public static的getinstance方法,返回第二部的靜態屬性 餓漢模式,無論如何都會建立乙個例項 例子取自 以lol中的大龍 giant...