A. java 中的單例設計具體能應用在哪些方面
單例模式就是一個實例,具體的定義你還記的不?
先定義構造方法為私有的,
然後定義一個創建實例的方法,在剛方法中先判斷實例是否存在
具體應用,最多的應該是在線程共享中,保證只有一個實例
這時候會出現一個鎖定和解鎖的問題。
B. 在java中用單例模式有什麼好處
單例模式主要作用是保證在Java應用程序中,一個類Class只有一個實例存在。
還有, singleton(單例)能夠被狀態化; 這樣,多個單態類在一起就可以作為一個狀態倉庫一樣向外提供服務,比如,你要論壇中的帖子計數器,每次瀏覽一次需要計數,單態類能否保持住這個計數,並且能synchronize的安全自動加1,如果你要把這個數字永久保存到資料庫,你可以在不修改單態介面的情況下方便的做到。
另外方面,Singleton也能夠被無狀態化。提供工具性質的功能,
Singleton模式就為我們提供了這樣實現的可能。使用Singleton的好處還在於可以節省內存,因為它限制了實例的個數,有利於Java垃圾回收(garbage collection)。Singleton模式看起來簡單,使用方法也很方便,但是真正用好,是非常不容易,需要對Java的類 線程 內存等概念有相當的了解。
C. java單例模式講白話一點,什麼用途,具體分析一下謝謝
通過單例模式可以保證系統中一個類只有一個實例。即一個類只有一個對象實例!
單例模式有以下特點:
1、單例類只能有一個實例。
2、單例類必須自己創建自己的唯一實例。
3、單例類必須給所有其他對象提供這一實例。
步驟1
創建一個Singleton類。
SingleObject.java
publicclassSingleObject{
//創建SingleObject的一個對象
=newSingleObject();
//讓構造函數為private,這樣該類就不會被實例化
privateSingleObject(){}
//獲取唯一可用的對象
(){
returninstance;
}
publicvoidshowMessage(){
System.out.println("HelloWorld!");
}
}
步驟2
從singleton類獲取唯一的對象。
SingletonPatternDemo.java
{
publicstaticvoidmain(String[]args){
//不合法的構造函數
//編譯時錯誤:構造函數SingleObject()是不可見的
//SingleObjectobject=newSingleObject();
//獲取唯一可用的對象
SingleObjectobject=SingleObject.getInstance();
//顯示消息
object.showMessage();
}
}
步驟3
驗證輸出。
HelloWorld!
D. Java單例模式怎麼用
java模式之單例模式:
單例模式確保一個類只有一個實例,自行提供這個實例並向整個系統提供這個實例。
特點:
1,一個類只能有一個實例
2,自己創建這個實例
3,整個系統都要使用這個實例
例: 在下面的對象圖中,有一個"單例對象",而"客戶甲"、"客戶乙" 和"客戶丙"是單例對象的三個客戶對象。可以看到,所有的客戶對象共享一個單例對象。而且從單例對象到自身的連接線可以看出,單例對象持有對自己的引用。
Singleton模式主要作用是保證在Java應用程序中,一個類Class只有一個實例存在。在很多操作中,比如建立目錄 資料庫連接都需要這樣的單線程操作。一些資源管理器常常設計成單例模式。
外部資源:譬如每台計算機可以有若干個列印機,但只能有一個Printer Spooler,以避免兩個列印作業同時輸出到列印機中。每台計算機可以有若干個通信埠,系統應當集中管理這些通信埠,以避免一個通信埠被兩個請求同時調用。內部資源,譬如,大多數的軟體都有一個(甚至多個)屬性文件存放系統配置。這樣的系統應當由一個對象來管理這些屬性文件。
一個例子:Windows 回收站。
在整個視窗系統中,回收站只能有一個實例,整個系統都使用這個惟一的實例,而且回收站自行提供自己的實例。因此,回收站是單例模式的應用。
兩種形式:
1,餓漢式單例類
public class Singleton {
private Singleton(){}
//在自己內部定義自己一個實例,是不是很奇怪?
//注意這是private 只供內部調用
private static Singleton instance = new Singleton();
//這里提供了一個供外部訪問本class的靜態方法,可以直接訪問
public static Singleton getInstance() {
return instance;
}
}
E. java怎麼實現單實例運行
Java實現單例的5種方式
1. 什麼是單例模式
單例模式指的是在應用整個生命周期內只能存在一個實例。單例模式是一種被廣泛使用的設計模式。他有很多好處,能夠避免實例對象的重復創建,減少創建實例的系統開銷,節省內存。
2. 單例模式和靜態類的區別
首先理解一下什麼是靜態類,靜態類就是一個類裡面都是靜態方法和靜態field,構造器被private修飾,因此不能被實例化。Math類就是一個靜態類。
知道了什麼是靜態類後,來說一下他們兩者之間的區別:
1)首先單例模式會提供給你一個全局唯一的對象,靜態類只是提供給你很多靜態方法,這些方法不用創建對象,通過類就可以直接調用;
2)單例模式的靈活性更高,方法可以被override,因為靜態類都是靜態方法,所以不能被override;
3)如果是一個非常重的對象,單例模式可以懶載入,靜態類就無法做到;
那麼時候時候應該用靜態類,什麼時候應該用單例模式呢?首先如果你只是想使用一些工具方法,那麼最好用靜態類,靜態類比單例類更快,因為靜態的綁定是在編譯期進行的。如果你要維護狀態信息,或者訪問資源時,應該選用單例模式。還可以這樣說,當你需要面向對象的能力時(比如繼承、多態)時,選用單例類,當你僅僅是提供一些方法時選用靜態類。
F. Java單例模式是什麼意思
Java單例模式是確保某個類只有一個實例,而且自行實例化並向整個系統提供這個實例,在計算機系統中,線程池、緩存、日誌對象、對話框、列印機、顯卡的驅動程序對象常被設計成單例的模式;
Java單例模式分三種:懶漢式單例、餓漢式單例、登記式單例。
G. java單例模式在什麼地方使用
如果在整個項目周期中,只需要一個實例,就可以使用單例模式,比如Spring上下文Context、Servlet Application類等。
H. java開發在什麼情況下使用單例模式
使用原則如下:
1.單例模式:確保一個類只有一個實例,自行實例化並向系統提供這個實例
2.單例模式分類:餓單例模式(類載入時實例化一個對象給自己的引用),懶單例模式(調用取得實例的方法如getInstance時才會實例化對象)(java中餓單例模式性能優於懶單例模式,c++中一般使用懶單例模式)
I. 誰能給我詳細的講講JAVA單例模式的作用和應用
作用:使你的整個應用中對於該類,只存在一個實例。
在你給出的代碼里,是讀取資料庫的屬性文件,對於這種讀取,一般讀取1次即可。所以在這里用了單例,既該類的對象永遠只有一個,並且是同一個。只有在創建這個對象時區讀取資源文件。
問為什麼用static,你反過來想,你都單例了,就不可能從外部創建本來對象,本類對象在自己內部創建。外邊沒有對象,如何調用本類的方法。所以必須設成static,這樣可以通過類名.方法()來調用本類的方法,該方法只是返回本來的單一實例給外部使用。