首页 > 编程语言 > 详细

java单例模式

时间:2019-12-10 10:47:02      阅读:66      评论:0      收藏:0      [点我收藏+]

单例模式分为两种:饿汉模式         懒汉模式

饿汉模式:

技术分享图片
//单例模式:饿汉模式
public class TestSingleton {
    //1、私有化构造
    private TestSingleton(){
        
    }
    //2、私有静态属性对象实例
    private static final  TestSingleton singleton=new TestSingleton();
    //3、公开获取实例方法
    public static TestSingleton getTestObject() {
        return singleton;
    }
}
饿汉模式

懒汉模式:

技术分享图片
//单例模式:懒汉模式
class TestSingleton{
    //1、私有化构造
    private TestSingleton(){
        
    }
    //2、私有静态属性唯一对象引用
    private static  TestSingleton singleton;
    //3、公开获取实例方法(懒汉模式有个缺点在多线程时候可能创建多个对象)
    public static TestSingleton getTestObject() {
        
        if(singleton==null) {
            singleton=new TestSingleton();
        }
        
        return singleton;
    }
}
懒汉模式

恶汉模式在开启多线程的时候有可能出现创建多个对象的问题,下面进行优化:获取对象方法加同步锁

优化:

技术分享图片
//单例模式:懒汉模式
class TestSingleton{
    //1、私有化构造
    private TestSingleton(){
        
    }
    //2、私有静态属性唯一对象引用
    private static  TestSingleton singleton;

    //3、公开获取实例方法(优化:加同步锁)
    public static synchronized TestSingleton getTestObject() {
        
        if(singleton==null) {
            singleton=new TestSingleton();
        }
        
        return singleton;
    }
}
优化

 

 

 

 

 

java单例模式

原文:https://www.cnblogs.com/2393920029-qq/p/12015193.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!