设计模式之单例设计模式(懒汉式)
生活随笔
收集整理的這篇文章主要介紹了
设计模式之单例设计模式(懒汉式)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package july.star.thread22;
/*** Teacher* 餓漢式:類一加載就加載* 懶漢式:需要時才加載* 面試題:單例模式的思想是什么,請用代碼體現。* 開發:餓漢式(不會出現問題的單例模式)* 面試:懶漢式(可能會出現問題的單例模式)* A:懶加載(延遲加載)* B:線程安全問題* a:是否多線程環境 是* b:是否有共享數據 是* c:是否有多條數據操作共享數據 是* @author MoXingJian* @email 939697374@qq.com* @date 2016年12月10日 下午9:52:02* @version 1.0*/
public class Teacher {//私有構造方法private Teacher(){}//設置對象為空private static Teacher t = null;//假設有3個線程進來 t1,t2,t3//如果要解決線程安全問題就要加synchronizedpublic synchronized static Teacher getTeacher(){//t1,t2,t3if(t == null){//如果不加同步鎖,t1,t2,t3都會進入到這里,那就創建了3個對象t = new Teacher();}return t;}
}//測試
package july.star.thread22;/*** TeacherDemo* 單例設計模式之懶漢式* @author MoXingJian* @email 939697374@qq.com* @date 2016年12月10日 下午9:57:49* @version 1.0*/
public class TeacherDemo {public static void main(String[] args) {//創建對象Teacher t1 = Teacher.getTeacher();Teacher t2 = Teacher.getTeacher();System.out.println(t1 == t2); //trueSystem.out.println(t1); //對象一樣:july.star.thread22.Teacher@65712a80System.out.println(t2); // july.star.thread22.Teacher@65712a80}
}
總結
以上是生活随笔為你收集整理的设计模式之单例设计模式(懒汉式)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式之单例设计模式(饿汉式)
- 下一篇: 分析JDK中的Runtime的单例设计模