激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java 中單例模式餓漢式與懶漢式的對比

java 中單例模式餓漢式與懶漢式的對比

2020-12-16 13:37aboy123 Java教程

這篇文章主要介紹了java 中單例模式餓漢式與懶漢式的對比的相關資料,這里對這兩種單例模式進行對比,希望大家能理解并應用,需要的朋友可以參考下

java單例模式餓漢式與懶漢式的對比

概念:

保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。

以前我們的做法是設置一個全局變量,也就是讓它使得一個對象被訪問。但是它不能防止你實例多個對象。這時我們可以讓類自身負責保存它的唯一實例,這個類可以保證沒有其他實例可以被創建,并且提供一個訪問該實例的方法。

通過上面的描述,我們可以看到單例模式有以下特點:

  1、單例類只能有一個實例。
  2、單例類必須自己自己創建自己的唯一實例。
  3、單例類必須給所有其他對象提供這一實例。

因此,創建一個類的實例的具體方法(要素)是:

      1、 私有的、靜態的成員變量
      2、 私有的構造方法
      3、 公共的、靜態的一個入口方法

根據上面的具體方法,我們來看一下下面的代碼

?
1
2
3
4
5
6
7
8
9
10
11
public class Test {
  private static Test instance = new Test (); 
   
  private Test (){
   
  }
   
  public static Test GetInstance(){
    return instance;
  }
}

從上面的代碼中我們看出,當類加載到內存時,在我們調用GetInstance()方法之前,就已經在內存中創建了一個instance對象。也就是說,不管我是否想用這個方法,在內存中就已經存在instance這個對象了,此時這個對象就是多余對象了,這樣就會占用內存資源。因此我們將這種單例模式稱作“餓漢式”單例模式。其實就是一個“預加載”的過程。

而“懶漢式”單例模式(也就是“延遲式”創建對象)則是在我們需要的時候才去創建這個對象。這樣就避免了提前創建對象占用內存資源。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Test {
  private static Test instance = null;
   
  private Test (){
     
  }
  public static Test getInstance(){
    if (instance == null) then {
      instance = new Test ();
    }
    return instance;
  }
}

但是,通過觀察上面的代碼,我們可以看出其中還是存在一些問題的。假設,有多個進程同時調用getInstance()方法,這樣就可能出現同時創建多個對象,那這就不是單例模式了。因此,我們可以加入“同步”這個關鍵字使得我們的代碼更加的嚴謹。改進之后是這樣的

?
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Test {
  private static Test instance = null;
   
  private Test (){
     
  }
  public static synchronized Test getInstance(){
    if (instance == null) then {
      instance = new Test ();
    }
    return instance;
  }
}

 以上就是java中兩種單例模式的對比,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

原文鏈接:http://blog.csdn.net/aboy123/article/details/8778717

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品一区二区三区在线看 | 欧美黄色试片 | 久久噜噜噜精品国产亚洲综合 | 亚洲第一页夜 | 污污短视频 | 欧美成人高清视频 | 亚洲视频综合 | 久久久久成人免费 | www.com香蕉| 成人一级毛片 | 欧美一级黄色影院 | 日韩专区在线 | 国产精品久久久乱弄 | 成人av一区二区免费播放 | 日本一区二区不卡高清 | 精品国产一区二区亚洲人成毛片 | 91免费官网 | 丰满年轻岳中文字幕一区二区 | 性高跟鞋xxxxhd4kvideos | 午夜精品成人一区二区 | 万圣街在线观看免费完整版 | 国产一区二区在线观看视频 | 一区二区三区国产好的精 | 国产精品一区网站 | 欧美综合日韩 | 国产一区二区高清在线 | 久久国产夫妻视频 | 成人毛片在线观看 | 亚洲精品久久久久www | 欧美18videos性处按摩 | 亚洲影视中文字幕 | 91网视频在线观看 | 久久久三区 | 日本a v免费观看 | 日日做夜夜操 | 国产精品视频导航 | 久久成人精品视频 | 粉嫩粉嫩一区二区三区在线播放 | 国产人成精品一区二区三 | 成人免费毛片一 | 欧美成人午夜精品久久久 |