1. 程式人生 > >java 核心學習筆記(四) 單例類

java 核心學習筆記(四) 單例類

com null tools 初始化 equal inf div 特殊 對象

如果一個類始終只能創建一個實例,那麽這個類被稱作單例類。

一些特殊的應用場景可能會用到,為了保證只能創建一個實例,需要將構造方法用private修飾,不允許在類之外的其它地方創建類的實例。

又要保證可以創建該類的實例,所以需要一個public方法來創建該類的實例,由於在創建之前並沒有該類的對象存在,所以只能使用類來調用此方法,故用static修飾。

同時需要將該類創建得到的實例分配一個引用才能知道該實例是否存在與是否唯一,所以需要一個成員變量保存創建的對象,同時由於該對象由上述靜態方法創建,則該成員變量也必須是成員變量,與靜態方法一起在類裝載時初始化。

所以代碼應該這樣寫;

import com.sun.tools.xjc.reader.xmlschema.bindinfo.BIConversion;

public class SingletonTest { public static void main(String[] args){ String str = new String(); System.out.println(); if(str == null){ System.out.println("str == null"); } else if(str.equals("")){ System.out.println("str.equal(‘‘)"); }
else{ System.out.println(str); } Singleton singleton = Singleton.getTheSingleton(); Singleton singleton1 = Singleton.getTheSingleton(); System.out.println(singleton == singleton1); } } class Singleton{ private static Singleton singleton;
private Singleton(){}; public static Singleton getTheSingleton(){ //如果該靜態對象還沒初始化(對象的創建包含聲明和初始化),就創建一個。 if(singleton == null) singleton = new Singleton(); return singleton; } }

java 核心學習筆記(四) 單例類