代碼如下:
package net.kitbox.util;
/**
*
* @author lldy
*
*/
public class Singleton {
private Singleton(){
}
private static class SingletonHolder{
private static Singleton instance = new Singleton();
}
public static void method(){
SingletonHolder.instance._method();
}
private void _method(){
System.out.println("Singleton Method!");
}
public static void main(String[] args) {
Singleton.method();
}
}
此種寫法利用了類加載器的加載原理,每個類只會被加載一次,這樣單例對象在其內部靜態類被加載的時候生成,而且此過程是線程安全的。
其中method()方法封裝內部單例對象的私有方法,作為對外接口使用,這樣就可以如下調用
復制代碼代碼如下:
Singleton.method();
//頻繁使用時比常見的 Singleton.getInstance().method()要省事
另外一種方式為采用枚舉來實現。
以上就是本文的全部內容了,希望大家能夠喜歡。