• Java的单例模式


      所谓单例模式,就是整个应用中会让某个实例只有一个。

      单例模式有饿汉模式和懒汉模式两种,懒汉模式加载类时比较快,因为加载类的时候不会使用构造器,而饿汉模式加载类时就会直接使用构造器获取一个对象。但是这样运行时获取对象的速度饿汉模式就会更快些,因为他已经加载好了,直接获取即可。

    MySingleton.java
    
    package com.muggle.MySin;
    //恶汉模式
    public class MySingleton {
        private MySingleton() {
            // TODO Auto-generated constructor stub
        }
        
        private static MySingleton instance=new MySingleton();
        
        public static MySingleton getInsatance() {
            return instance;
        }
    }
    
    
    MySingleton2.java
    package com.muggle.MySin;
    //懒汉模式
    public class MySingleton2 {
        private  MySingleton2() {
            // TODO Auto-generated constructor stub
        } 
        
        private static MySingleton2 instance;
        
        public static MySingleton2 getInstance() {
            if(instance==null) {
                instance=new MySingleton2();
            }
            return instance;
        }
        
        
    }
    
    
    TestDrive.java
    package com.muggle.MySin;
    
    public class TestDrive {
    
        public static void main(String[] args) {
            MySingleton s1=MySingleton.getInsatance();
            MySingleton s2=MySingleton.getInsatance();
            if(s1==s2) {
                System.out.println("------这是饿汉模式!----");
            }
            System.out.println(s1);
            System.out.println(s2);
            
            MySingleton2 s3=MySingleton2.getInstance();
            MySingleton2 s4=MySingleton2.getInstance();
            if(s3==s4) {
                System.out.println("------这是懒汉模式!----");
            }
            System.out.println(s3);
            System.out.println(s4);
    
        }
    
    }

    输出如下:

    ------这是饿汉模式!----
    com.muggle.MySin.MySingleton@70dea4e
    com.muggle.MySin.MySingleton@70dea4e
    ------这是懒汉模式!----
    com.muggle.MySin.MySingleton2@5c647e05
    com.muggle.MySin.MySingleton2@5c647e05

      代码运行后发现s1和s2,s3和s4时同一个对象,也是实现了单例模式。

  • 相关阅读:
    计算机相关单位换算关系的积累
    谈编程资料
    杂记toCSV
    [转载]Windows 8][Metro Style Apps]淺談Metro Style Apps的瀏覽模式及螢幕解析度
    [转载][Windows 8][Metro Style Apps]Windows 8 開發/執行環境概觀
    【转载】[Windows 8]Hello Windows 8 Windows 8 Developer Preview搶先預覽
    台湾dotnet程序员之家
    [转载]实现Application Tile 更新
    [转载]在.NET中实现OAuth身份认证
    杂记
  • 原文地址:https://www.cnblogs.com/mugglean/p/8887869.html
Copyright © 2020-2023  润新知