废话不多说,直接上代码
package singleton; /** * 饿汉试设计模式,当类加载的事件就创建对象 * @author soft01 * */ public class SingletonDemo { private static final SingletonDemo sd = new SingletonDemo(); private SingletonDemo() {} public static SingletonDemo getSingleDemo() { return sd; } } |
package singleton; /** * * 懒汉设计模式,当需要的时间在创建对象 * @author soft01 * */ public class SingletonDemoEat { private static SingletonDemoEat sde; private SingletonDemoEat() {} public static SingletonDemoEat getSingleDemoEat() { if(sde == null) { sde = new SingletonDemoEat(); } return sde; } } |
package singleton; public class SingletonTest { public static void main(String[] args) { //懒汉设计模式测试 SingletonDemo sd = SingletonDemo.getSingleDemo(); SingletonDemo sd1 = SingletonDemo.getSingleDemo(); System.out.println("懒汉"+sd); System.out.println("懒汉"+sd1); //饿汉设计模式测试 SingletonDemoEat sd2 = SingletonDemoEat.getSingleDemoEat(); SingletonDemoEat sd3 = SingletonDemoEat.getSingleDemoEat(); System.out.println("饿"+sd2); System.out.println("饿"+sd3); /** * 单例模式的特点 * 1.单例类只能有有一个实列 * 2.单例类只能自己创建自己唯一的实列 * 3.单例类必须给所有其他对象提供这一实列 */ } } |
java线程面试题链接
https://blog.youkuaiyun.com/yuchangchenTT/article/details/77053779