zoukankan      html  css  js  c++  java
  • 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时同一个对象,也是实现了单例模式。

  • 相关阅读:
    Linux下安装firefox最新版
    php开发网站编码统一问题
    WordPress前台后台页面打开慢的解决方法
    超链接标签简单的几个样式属性
    jQuery结合Ajax实现简单的前端验证和服务端查询
    Javascript配合jQuery实现流畅的前端验证
    Code-Validator:验证只包含英文字母
    Code-Validator:验证小数
    Code-Validator:验证正整数
    Code-Validator:验证非负整数
  • 原文地址:https://www.cnblogs.com/mugglean/p/8887869.html
Copyright © 2011-2022 走看看