首页 > 编程语言 > 详细

java 单例模式

时间:2019-10-10 12:00:59      阅读:51      评论:0      收藏:0      [点我收藏+]

单例模式 : 一个类创建的 任何对象都是同一个只存在一个实例,都只开辟同一块内存空间

单例模式就是不管外部如何创建  都只是创建一个对象  对象操作的也是只个唯一对象

 

饿汉式:

public class Singleton {
    public static void main(String[] args) {
        Pattern patternOne = Pattern.getPattern();
        Pattern patternTwo = Pattern.getPattern();
        System.out.println(patternOne == patternTwo);  // true  比较两个内存地址
    }
}

// 饿汉式 单例模式
class  Pattern{

    // 私有化构造方法不允许外部随意调用
    private Pattern(){}  // 因为构造方法是创建对象来用的  我们不允许外部随意创建对象

    // 内部创建对象
    private static Pattern pattern = new Pattern();  // 对生产的对象私有化 并静态化 在内部创建完毕

    // 提供公共的静态方法 返回已创建对象
    public  static  Pattern getPattern(){  // 外部都只能通过此方法获取对象, 并且获取的都是同一个对象, 只开辟一块内存地址
        return pattern;
    }

}

 

懒汉式:

public class Singleton {
    public static void main(String[] args) {
        Lazy lazyOne = Lazy.getLazy();
        Lazy lazyTwo = Lazy.getLazy();
        System.out.println(lazyOne == lazyTwo);  //true
    }
}




// 懒汉式


class Lazy {

    // 1: 私有化构造器

    private Lazy() {
    }

    //2 : 内部创建类的对象
    // 4: 要求此对象必须声明为static
    private static Lazy lazy = null;

    //3 : 向外部提供一个公共的static方法
    public static Lazy getLazy() {
        if (lazy == null) {
            lazy = new Lazy();  //如果是空的时候就创建一个不然所有的都是没有在内部创建的对象,在外部就会创建
        }
        return lazy;
    }

}

 

 

 

 

懒汉式 和饿汉式  :

懒汉式 什么时候用什么时候造  饿汉式提前造好

 

饿汉式 VS  懒汉式

    饿汉式: 坏处 对象加载时间过长  (提前创建好的  在内存中保留时间较久)

               好处 :饿汉式 是线程安全

   懒汉式  好处 延迟对象的创建

              坏处 : 目前写法不安全 -- >多线程内部时修改

  目前 :懒汉式线程不安全(当都去抢火车票 ,三个人一起刷票 然后都进入了是否为空的时候 然后第一个卡顿了 第二个第三个也进去了 最后三个人都会 去创建了对象就不是只创建一个对象了,而饿汉式提前创建好 ,不论如何卡顿 都是创建一个对象)

 

java 单例模式

原文:https://www.cnblogs.com/zhaoyunlong/p/11647080.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!