zoukankan      html  css  js  c++  java
  • Java Singleton 单例模式


    大家可能还听过 Singleton  也就是单例模式 这个单例模式要求 在程序的运行时候   一个程序的某个类 只允许产生一个 实例 那么 这个类就是一个单例类

    Java Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例在。 使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回(garbage collection)

    单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。
    单例模式(singleton)顾名思义,就是只有一个实例。   
    作为对象的创建模式[GOF95],单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。   

    单例模式的要点   
    显然单例模式的要点有三个
      一是某个类只能有一个实例;
      二是它必须自行创建这个实例;
      三是它必须自行向整个系统提供这个实例


    第一种:饱汉模式

     

    定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。 

     

    public class SingleTon {
        private SingleTon(){
            }
    
        //实例化放在静态代码块里可提高程序的执行效率,但也可能更占用空间    
        private final static SingleTon instance = new SingleTon();
        //这里提供了一个供外部访问本class的静态方法,可以直接访问
        public static SingleTon getInstance(){
            return instance;
        }
    }

    第二种:饥汉模式

     

    public class SingleTon {
        private SingleTon(){}
        
        private static instance = null;//new SingleTon();
        //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次  
       //使用时生成实例,提高了效率! 
        public static synchronized SingleTon getInstance(){
            if(instance == null)
                instance = new SingleTon();
            return instance;
        }
    }

     

     
  • 相关阅读:
    生产者-消费者问题
    【k8s】4-Service转发规则 ingress 七层代理
    【k8s】3-kubectl 命令以及 yaml文件学习
    【k8s】2-安装部署 以及flannel访问失败问题 The connection to the server raw.githubusercontent.com was refused
    【k8s】1-kubernetes组件介绍 网络情况 汇总
    Django xadmin 学习转载
    【python】字节转换 base64 encode decode pickle
    【Django】windows安装fdfs_client-py-master.zip 出现 error: Microsoft Visual C++ 14.0 is required.
    【docker】命令学习
    【DJango项目】3.JWT验证
  • 原文地址:https://www.cnblogs.com/zyw-205520/p/3147785.html
Copyright © 2011-2022 走看看