国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

香港云服务器
服務器之家 - 編程語言 - JAVA教程 - java設計模式之單例模式學習

java設計模式之單例模式學習

2019-10-30 17:07java教程網 JAVA教程

單例對象(Singleton)是一種常用的設計模式。在Java應用中,單例對象能保證在一個JVM中,該對象只有一個實例存在

1 概述

單例模式有幾個好處:

(1)某些類創建比較頻繁,對于一些大型的對象,這是一筆很大的系統開銷。

(2)省去了new操作符,降低了系統內存的使用頻率,減輕GC壓力。

(3)有些類如交易所的核心交易引擎,控制著交易流程,如果該類可以創建多個的話,系統完全亂了。

2 詳解

單例模式常用的寫法有如下這么兩種。

2.1 餓漢式

如果應用程序總是創建并使用單例模式,或者在創建和運行時壓力不是很大的情況下,可以使用一個私有靜態變量,提前把對象創建好。

 

復制代碼代碼如下:

package org.scott.singleton;
/** 
 * @author Scott
 * @version 2013-11-16 
 * @description
 */
public class Singleton1 {
    private static Singleton1 uniqueInstance = new Singleton1();

    private Singleton1(){

    }

    public static Singleton1 getInstance(){
        return uniqueInstance;
    }
}

 

這樣做的話,當JVM加載這個類的時候,根據初始化的順序,就已經把對象創建好了。同時,JVM可以保證任何線程在訪問這個單例對象之前,一定先創建此實例,并且只創建一次。

當然,也可以使用一個靜態內部類來完成同樣的功能。

 

復制代碼代碼如下:

package org.scott.singleton;
/** 
 * @author Scott
 * @version 2013-11-16 
 * @description
 */
public class Singleton2 {  

    private Singleton2() {  
    }  

    /** 
     * 此處使用一個內部類來維護單例 
     * */  
    private static class SingletonFactory {  
        private static Singleton2 instance = new Singleton2();  
    }  

    public static Singleton2 getInstance() {  
        return SingletonFactory.instance;  
    }  

    /**
     * 如果該對象被用于序列化,可以保證對象在序列化前后保持一致 
     * */  
    public Object readResolve() {  
        return getInstance();  
    }  
}

 

2.2 雙重鎖方式
 “雙重鎖”,顧名思義就是兩把鎖,第一把鎖用來檢查要創建的實例對象是否已經創建了,如果尚未創建才使用第二把鎖來進行同步。

 

復制代碼代碼如下:

package org.scott.singleton;
/** 
 * @author Scott
 * @version 2013-11-16 
 * @description
 */
public class Singleton3 {
    private volatile static Singleton3 uniqueInstance;

    private Singleton3(){

    }

    public static Singleton3 getInstance(){
        if(uniqueInstance == null){
            synchronized(Singleton3.class){
                if(uniqueInstance == null){
                    uniqueInstance = new Singleton3();
                }
            }
        }
        return uniqueInstance;
    }
}

 

如果對性能要求比較高的話,這種方式可以大大減少創建的時間,目前來說,這種方式也是比較通用的一種創建單例的方式。

延伸 · 閱讀

精彩推薦
270
主站蜘蛛池模板: 亚洲精品国精品久久99热 | 国内自拍视频在线观看 | 欧美一区二区三区在线视频观看 | 中文字幕在线资源 | 免费污片网站 | 日韩操bb | 激情久久免费视频 | 国产精品一区二区免费 | 日本中文字幕在线播放 | 精品久 | 中文字幕在线免费看 | 久久久国产视频 | 亚洲国产精品久久久 | 亚洲福利电影网 | 二区视频 | 亚洲一区二区三区免费观看 | 欧美精品三区 | 成人精品一区二区三区中文字幕 | 国产精品99久久久久久久vr | 九九热在线视频 | 成人在线免费 | 午夜爱爱毛片xxxx视频免费看 | 秋霞电影院午夜伦 | 特黄特色大片免费视频观看 | 性色av一区二区 | 亚洲成人福利 | 成年片 | 亚洲一区二区高清 | 国产免费拔擦拔擦8x高清在线人 | 精品久 | 97久久久| 亚洲精品天堂 | 国产激情视频 | 一级在线免费视频 | 精品一区二区久久久久久久网站 | 久久久99国产精品免费 | 九九热精品在线播放 | 中文字幕在线观看一区二区三区 | 最新中文字幕在线 | 日日日日干干干干 | 亚洲精品在线免费 |