package com.waibizi.demo03; /** * 優點:起到了懶加載的效果,但是只能在單線程的情況下使用 * 缺點:如果是多線程下,一個線程已經進入了if(instance==null) 但是還沒來得及實例化,這時候另外一個線程也進入了if(instance==null) ,這時便會產生多個實例 * 所以在多線程的情況下不能使用這種懶漢式加載 * @author 歪鼻子 * */ @SuppressWarnings("all") public class Singleton_Pattern { public static void main(String[] args) { // TODO Auto-generated method stub Singleton test = Singleton.getInstance(); Singleton test1 = Singleton.getInstance(); System.out.println(test.hashCode()); System.out.println(test1.hashCode()); } } @SuppressWarnings("all") class Singleton{ private static Singleton instance; private Singleton() { } //提供一個靜態的公有方法,當使用該方法時,才去創建instance //即懶漢式加載 public static Singleton getInstance() { if(instance==null) { System.out.println("我只初始化了這一次哦"); instance=new Singleton(); } return instance; } }