zoukankan      html  css  js  c++  java
  • 一个单例(Singleton),并说明单例的目的和好处

    单例的目的:保证一个类只有单一的实例,也就是说你无法通过new来创建这个类的一个新实例。

    单例的好处:当一个对象在程序内部只能有一个实例的时候,它可以保证我们不会重复创建,而是始终指向同一个对象。

    Singleton通过将构造方法限定为private避免了类在外部被实例化,在同一个虚拟机范围内,Singleton的唯一实例只能通过getInstance()方法访问。

     第一种:在声明变量时实例化(也叫饿汉式单例模式),代码如下:

    public class Singleton {

          private static Singleton instance = new Singleton(); //已经自行实例化

          private Singleton(){}  //私有的默认构造

      public static Singleton getInstance() { //静态工厂方法

           return instance;  

       } 

     } 

    第二种:把对象的创建放到方法里面去(也叫懒汉式单例模式),代码如下:

     public class Singleton { 

      private static Singleton instance = null;

            private Singleton(){}

      public static synchronized Singleton getInstance() {

           //也可以这样写:synchronized public static Singleton getInstance() {

          if (instance == null){

           instance = new Singleton();

               }

               return instance; 

         } 

    各自的优缺点

        第一种饿汉式:

        优点:在类加载初始化的时候就创建对象,调用getInstance的时候,没有同步方法,运行时性能较高。

        缺点:类加载速度慢,占用太多大的资源空间。

       第二种懒汉式:

        优点:避免了第一种方式的缺点, 同时,可以在多线程下运行安全。

        缺点:因为他使用了锁,在运行中效率慢。

  • 相关阅读:
    python连接集群mongodb,封装增删改查
    selenium截屏操作(也支持截长图)
    ant生成jmeter测试报告没有数据【已解决】
    论自动化如何提高测试工作效率
    研究显示情商高的人比智商高的可怕多了
    提高程序员职场价值的10大技巧
    革命就是请客吃饭(案例分析吧)
    开发者应该了解的API技术清单!
    陈天:如何快速掌握一门技术
    程序员如何参与创业
  • 原文地址:https://www.cnblogs.com/cyl048/p/6803135.html
Copyright © 2011-2022 走看看