new與instance

new與instance

new與getinstance

  • new:

    • 一定要生成一個新對象,分配內存
    • 創建後只能當次使用
    • 是直接調用構造方法
  • getinstance

    • 是方法
    • 不一定要再次創建,可以把一個已存在的引用給你使用,這個在性能上優於new
    • 可以跨棧區域使用,或者遠程跨區域使用。所以getInstance()通常是創建static靜態實例方法的
    • 多用於單例模式
    • 對於抽象類要想對其實例化,只能使用getInstance方法,是不能new出來的。

new和newInstance

  • new

    • 直接創建一個類、不需要這個類加載過
    • 強類型(GC不會自動回收,只有所有的指向對象的引用被移除是纔會被回收,若對象聲明週期已經結束,但引用沒有被移除,經常會出現內存溢出)
  • newInstance

    • 使用類加載機制創建對象
    • 創建類是這個類必須已經加載過且已經連接
    • 弱類型(GC是回收對象的限制條件很低,容易被回收)、低效率、只能調用無參構造。

    實現接口的類加載一般採用newInstance而不會使用new

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章