JAVA单例模式

单例,顾名思义就是某一个类在整个程序系统中有且仅有一个实例,称为单例。单例能被整个程序系统访问。创建单例的时候应该使用类方法创建,因为让类的实例去生成另一个唯一的实例变得毫无意义.

饿汉式

package com.hc;

public class Test {

    public static void main( String[] args){    

        Singleton1 single1 = Singleton1.getInstance();
        Singleton1 single2 = Singleton1.getInstance();
        
        System.out.println("single1"+single1);
        System.out.println("single2"+single2);

        
    }
}

/*
static修饰的常量会在构造方法加载时加载,因此在使用到类Singleton1的时候
就会加载构造方法,同时private static Singleton1 singleton1 = new Singleton1();就实例就创建了,
并且static修饰的变量只会创建一次,在程序中只有一份内存
*/
class Singleton1 {
    
    private static Singleton1 singleton1 = new Singleton1();

    private Singleton1(){
        System.out.println("构造方法");
    }
    
    public static Singleton1 getInstance(){
        return singleton1;
    }
}

懒汉式

package com.hc;

public class Test {

    public static void main( String[] args){    

        Singleton1 single1 = Singleton1.getInstance();
        Singleton1 single2 = Singleton1.getInstance();
        
        System.out.println("single1"+single1);
        System.out.println("single2"+single2);

        
    }
}

class Singleton1 {
    
    private static Singleton1 singleton1 = null;

    private Singleton1(){
        System.out.println("构造方法");
    }
    
    public static Singleton1 getInstance(){
        if(singleton1 == null){
            singleton1 = new Singleton1();
        }
        return singleton1;
    }   
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、前言 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为...
    manimaniho阅读 3,173评论 0 0
  • 概述 Java中单例模式是一种常见的设计模式,单例模式总共有7种写法。 懒汉,线程不安全 懒汉,线程安全 饿汉 饿...
    HikariCP阅读 2,555评论 0 2
  • 看着盘里的色香味俱全的猪蹄,又看着对面秀色可餐的男人,陈晓北心里不禁感叹道:我擦,不会这么背吧...... 对面的...
    六月绿阅读 4,423评论 3 10
  • 上海 晴 今天是圆满的一天,完成了计划的内容。 想到自己回复老师的那句话,我要成为一个说到做到的老师。尽管很晚了...
    桃子时空阅读 1,391评论 0 1
  • 文/夏莲 踩踏着脚下的嫩草 那是人尽皆知的一条捷径 在寥寥无几的陌生人中 坦然的和苏醒的片刻黑暗相拥 那坚实的脚印...
    周小锦阅读 988评论 9 14