程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java兩種單例形式用法剖析

java兩種單例形式用法剖析

編輯:關於JAVA

java兩種單例形式用法剖析。本站提示廣大學習愛好者:(java兩種單例形式用法剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是java兩種單例形式用法剖析正文


本文實例講述了java兩種單例形式用法。分享給年夜家供年夜家參考,詳細以下:

依照加載方法的分歧,單例形式有兩種完成:

private:只能在統一個類中應用
static:該類是類辦法,不克不及挪用實例辦法。/類全局變量
final:辦法或成員變量不克不及被潤飾

1、餓漢式

public class EagerSigleton{
private static final EagerSigleton instance=new EagerSigleton();
private EagerSigleton(){}////公有結構辦法
public EagerSigleton getInstance(){//靜態工場辦法
return instance;
}
}

2、懶漢式

public class LazySigleton{
private static final LazySigleton instance=null;
private LazySigleton(){}//公有結構函數
public synchronized LazySigleton getInstance(){//靜態工場辦法,留意這裡的synchronized
if(instance==null){
instance=new LazySigleton();
}
return instance;
}
}

剖析比較:

雷同點:

單例形式屬於創立形式,包管在統一個jvm中僅僅存在該類的一個實例。在下面兩種的單例形式中,可以看出:

① 兩種方法的結構函數都是公有的。
② 對外接口都是工場辦法。

分歧點:

餓漢式是在類裝載時直接獲得該類的實例,可以說式後期綁定的。而懶漢式在類加載時並沒有指向詳細的某個對象。而是當挪用工場辦法後才被實例化。是以,前者速度快,後者速度慢。但後者可以加載其他的類,(也就是靜態擴大)靈巧性高。

更多java相干內容感興致的讀者可檢查本站專題:《Java數據構造與算法教程》、《Java操作DOM節點技能總結》、《Java文件與目次操作技能匯總》和《Java緩存操作技能匯總》

願望本文所述對年夜家java法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved