首页 > 代码库 > 设计模式_单例模式

设计模式_单例模式

回顾基础知识,温故而知新。

单例模式有饿汉模式和懒汉模式

技术分享
 1 package com.xiaoysec.designpattern; 2 /** 3  *  4  * @author xiaoysec 5  *本例是展示java单例模式中的饿汉模式 6  *饿汉模式 特点:   类加载的速度比较慢(在类加载的过程中创建唯一的实例对象) 运行的速度会比较快 线程安全 7  */ 8  9 public class Singleton {10     //将构造方法定义为私有 防止外部创建新的实例对象11    private Singleton(){}12    13    //private static修饰 在类加载时就创建唯一的实例对象 14    private static Singleton instance = new Singleton();15    16    //public static修饰 外部调用以获取实例对象的引用17    public static Singleton getInstance(){18        return instance;19    }20     public static void main(String[] args){21         Singleton instance = Singleton.getInstance();22         Singleton instance2 = Singleton.getInstance();23         if(instance == instance2){24             System.out.println("是相同的对象");25         }26         else27             System.out.println("不是相同的对象");28     }29 30 }
View Code
技术分享
 1 package com.xiaoysec.designpattern; 2 /** 3  *  4  * @author xiaoysec 5  *本例主要展示java单例模式中的懒汉模式 6  *懒汉模式的特点是  在类加载是并不创建实例对象 类加载的速度比较快但是运行的速度会比较慢(对象创建)线程不安全 7  */ 8 public class Singleton2 { 9     private Singleton2(){}10     11     12     private static Singleton2 instance = null;13     14     15     public static Singleton2 getInstance(){16         if(instance==null){17             instance = new Singleton2();18         }19         return instance;20     }21     public static void main(String[] args){22         Singleton2 instance1 = Singleton2.getInstance();23         Singleton2 instance2 = Singleton2.getInstance();24         if(instance1 == instance2){25             System.out.println("是同一个对象");26         }else27             System.out.println("不是同一个对象");28     }29 30 }
View Code

 

设计模式_单例模式