• 单例设计模式的简单model


     
    单例模式

           简单点说,就是一个应用程序中,某个类的实例对象只有一个,你没有办法去new,因为构造器是被private修饰的,一般通过getInstance()的方法来获取它们的实例。getInstance()的返回值是一个对象的引用,并不是一个新的实例,所以不要错误的理解成多个对象。

        单例模式实现起来也很容易,但是大量使用单例模式可能造成内存泄露,因为单例对象一旦创建,就会保存在堆中,垃圾回收器也无法清除这个对象的引用,因为Hot spot本身是采用“引用链可达法”来进行是否进行回收的,而单例这样单独的存在会造成一个强引用,而无法被清除。这样对象堆积下去,就会发生out of memory!

        单例模式实现方法一般有三种:懒汉式单例、饿汉式单例、登记式单例。

    下面直接写代码:懒汉式的线程安全的单例

         

    //懒汉 线程安全  单例
    public class Singleton {
    
        private static Singleton singleton;
    
        private Singleton() {
        }
    
        public static Synchronized Singleton getInstance() {
            if (singleton == null) {
                singleton = new Singleton();
            }
            return singleton;
        }
    }   


  • 相关阅读:
    【进阶技术】一篇文章搞掂:Spring Cloud Stream
    es6的foreach循环遍历
    centos下安装redis
    linux下安装nginx
    centos下安装Mysql5.7.20
    ubuntu下安装Mysql
    Maven发布项目丢失Mybatis Mapper包的映射问题
    linux下导入导出oracle的dmp文件
    表达式计算-----------eval()运算符
    Linux下安装mysql
  • 原文地址:https://www.cnblogs.com/wyf-love-dch/p/8980991.html
Copyright © 2020-2023  润新知