单例模式(Singleton Pattern)

单例模式

    • 1、掌握单例模式的应用场景。
      • 1-1、饿汉式单例
      • 1-2、懒汉式单例
      • 1-2-1、 测试类:
      • 1-2-2、 main
      • 1-2-3、 控制台结果
      • 1-2-4、 改进 加锁 `synchronized `
      • 1-2-5、 控制台输出
      • 1-2-6、 再改进,使用双检锁,懒汉式双重检查锁定(Lazy initialization with double-checked locking)
      • 1-2-7、 控制台输出
        • 1-2-7-1 问题一 代码是不是有点臃肿
        • 1-2-7-2 问题二为什么使用volitatle关键字
          • 1-2-7-2-1 解释一
          • 1-2-7-2-1 解释二

定义:
1:单例模式(Singleton Pattern)是指确保一个类在任何情况下都绝只有一个实例,并提供一个全局访问点。
2:隐藏其所有的构造方法:
3:属于创建型模式

1、掌握单例模式的应用场景。

框架中常见的单例 ServletContext、ServletConfig、ApplicationContext…

单例模式的常见写法文章来源地址https://www.uudwc.com/A/ZGdax/

1-1、饿汉式单例

package com.tansun.goods.pack;

/**
 * 优点:执行效率高,性能高,没有任何的锁
 * 缺点:某些情况下,可能会造成内存浪费
 * @author Administrator
 */
public class HungrySingleton {
   

    private static final HungrySingleton hungrySingleton = new HungrySingleton();

    private HungrySingleton() {
   
    }

    public static HungrySingleton getInstance() {
   
        return hungrySingleton;
    }
}

1-2、懒汉式单例

package com.tansun.goods.pack;
/**
 * @author Administrator
 * 优点:节省内存
 * 缺点:线程不安全
 */
public class LazySingleton {
   

    private static LazySingleton lazySingleton = null;
    private LazySingleton(){
   }

    public static LazySingleton getInstance(){
   
        if (lazySingleton == null){
   
            lazySingleton = new LazySingleton();
        }
        return lazySingleton;
    }
}

1-2-1、 测试类:

package com.tansun.goods

原文地址:https://blog.csdn.net/qq_34238798/article/details/132280856

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年09月12日 03:46
redis实战篇之导入黑马点评项目
下一篇 2023年09月12日 03:47