真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java單子模式代碼 java設(shè)計(jì)模式之單例模式

java高手能給我看一下以下的單例模式的代碼嗎? 要詳細(xì)解答哦。

第二個(gè)單例代碼不嚴(yán)謹(jǐn),可能會(huì)創(chuàng)建出多個(gè)實(shí)例。比如有兩個(gè)線(xiàn)程同時(shí)訪(fǎng)問(wèn)getInstance(),當(dāng)?shù)谝粋€(gè)線(xiàn)程進(jìn)入synchronized塊但還沒(méi)有new的時(shí)候,第二個(gè)線(xiàn)程也走到if處,這個(gè)時(shí)候uniqueInstance =null,if返回true,第二個(gè)線(xiàn)程就進(jìn)入了if塊,但在synchronized塊外面等待,然后第一個(gè)線(xiàn)程創(chuàng)建實(shí)例,第二個(gè)線(xiàn)程也能成功創(chuàng)建實(shí)例。

創(chuàng)新互聯(lián)公司專(zhuān)注于南召企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城網(wǎng)站制作。南召網(wǎng)站建設(shè)公司,為南召等地區(qū)提供建站服務(wù)。全流程按需策劃設(shè)計(jì),專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)

不知道我說(shuō)得夠不夠清楚。你可以看看《effective Java》這本書(shū),里面有專(zhuān)門(mén)講到這個(gè)問(wèn)題。

如何用Java實(shí)現(xiàn)單例模式

單例模式:就是一個(gè)類(lèi)僅創(chuàng)建一個(gè)對(duì)象;

public?class?Singleton?{

private?static?volatile?Singleton?singleton?=?null;

private?Singleton(){}//?構(gòu)造方法

public?static?Singleton?getSingleton(){//?單例模式

if(singleton?==?null){

synchronized?(Singleton.class){

if(singleton?==?null){

singleton?=?new?Singleton();

}

}

}

return?singleton;

}????

}

JAVA 采用單例設(shè)計(jì)模式設(shè)計(jì)日志處理類(lèi),并寫(xiě)出代碼

import?java.util.Date;

public?class?Logger?{

private?static?Logger?instance;

private?static?Class?clazz;

private?Logger()?{

}

private?Logger(Class?clazz)?{

this.instance?=?new?Logger();

this.clazz?=?clazz;

}

public?static?Logger?getLogger(Class?clazz)?{

if?(instance?==?null)?{

synchronized?(Logger.class)?{

if?(instance?==?null)?{

instance?=?new?Logger(clazz);

}

}

}

return?instance;

}

public?void?info(String?msg)?{

System.out.println(clazz.getName()?+?"["?+?new?Date().toLocaleString()

+?"][info]:"?+?msg);

}

public?void?error(String?msg)?{

System.out.println(clazz.getName()?+?"["?+?new?Date().toLocaleString()

+?"][error]:"?+?msg);

}

public?void?warn(String?msg)?{

System.out.println(clazz.getName()?+?"["?+?new?Date().toLocaleString()

+?"][warn]:"?+?msg);

}

public?void?log(String?msg)?{

System.out.println(clazz.getName()?+?"["?+?new?Date().toLocaleString()

+?"][log]:"?+?msg);

}

public?static?void?main(String?args[])?{

Logger?s?=?Logger.getLogger(String.class);

s.info("普通消息");

}

}


本文標(biāo)題:java單子模式代碼 java設(shè)計(jì)模式之單例模式
鏈接地址:http://weahome.cn/article/doioggo.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部