日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

黑马Java学习笔记之-----单例模式

發(fā)布時間:2025/6/17 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 黑马Java学习笔记之-----单例模式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

----------------------?android培訓java培訓、期待與您交流!?----------------------

?

單例模式:

  單例模式確保一個類只有一個實例,自行提供這個實例并向整個系統(tǒng)提供這個實例。

特點:
?????? 1,一個類只能有一個實例
?????? 2,自己創(chuàng)建這個實例
?????? 3,整個系統(tǒng)都要使用這個實例

?

保證唯一性的思想及步驟:

**為了避免其他程序建立該類對象,先禁止其他程序建立該類對象,即將構造函數(shù)私有化

**為了其他程序訪問到該類對象,須在本類中創(chuàng)建一個該類私有對象

**為了方便其他程序訪問到該類對象,可對外提供一個公共訪問方式

兩種形式:


1、餓漢式單例類:當類加載的時候就創(chuàng)建對象

1 class EagerSingleton { 2 private static final EagerSingleton m_instance = new EagerSingleton(); 3 4 /** * 私有的默認構造函數(shù),僅供內部調用*/ 5 private EagerSingleton() { 6 } 7 8 /** *這里提供了一個供外部訪問本class的靜態(tài)方法,可以直接訪問*/   9 public static EagerSingleton getInstance() { 10 return m_instance; 11 } 12 }

?

2、 懶漢式單例類當使用的時候才創(chuàng)建對象

1 class LazySingleton { 2 // 注意,這里沒有final 3 private static LazySingleton m_instance = null; 4 5 /** * 私有的默認構造函數(shù) */ 6 private LazySingleton() { 7 } 8 9 //使用時生成實例,提高了效率! 10 public synchronized static LazySingleton getInstance() { 11 if (m_instance == null) { 12 m_instance = new LazySingleton(); 13 } 14 return m_instance; 15 } 16 }

餓漢式和懶漢式的區(qū)別:

**

餓漢式是類一加載進內存就創(chuàng)建好了對象;

懶漢式則是類才加載進內存的時候,對象還沒有存在,只有調用了getInstance()方法時,

對象才開始創(chuàng)建。

**

注:

開發(fā)常用餓漢式,因為餓漢式簡單安全。懶漢式多線程的時候容易發(fā)生問題

?


----------------------?android培訓java培訓、期待與您交流!?----------------------

?

轉載于:https://www.cnblogs.com/MercyK/archive/2013/04/29/3020988.html

總結

以上是生活随笔為你收集整理的黑马Java学习笔记之-----单例模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。