美文网首页
单例模式-JAVA

单例模式-JAVA

作者: Yanl__ | 来源:发表于2019-12-11 16:04 被阅读0次

1. 懒汉式

1.对象只有被调用才去创建
2.由于添加来锁,所以效率低

1.1 JAVA实现代码

package com.steer;

/**
 * @author yanl
 * @date 2019-12-11 3:48 下午
 */
public class SingleTon {
    /**
     * 由于对象需要被静态方法调用,把方法设置为static
     *
     * 由于对象是static,鼻血要设置访问权限修饰符private,如果是public,则可以直接调用对象,不执行访问入口
     */
    private static SingleTon singleTon;
    /**
     * 方法名与类名相同 无返回值
     * 由于要设置为单例模式,让其为private,使其他类不能实例化这个类对象  但是 要在后面给其他类提供访问入口
     */
    private SingleTon(){}

    /**
     * 实例方法。
     * 实例方法必须通过对象调用, 其他类想调用时,由于没有对象,所以需要设置为静态的
     * @return
     */
    public static SingleTon getInstance(){
        if(singleTon==null){
            /**
             * 多线程访问下,可能出现if同时成立的情况,所以需要加锁,来进行双重验证
             */
            synchronized (SingleTon.class) {
                singleTon = new SingleTon();
            }
        }
        // 不为空,则直接返回singTon对象
        return singleTon;
    }

}

2.饿汉式

在类加载时,就进行实例化

解决了懒汉式中多线程访问可能出现同一个对象和效率低问


相关文章

网友评论

      本文标题:单例模式-JAVA

      本文链接:https://www.haomeiwen.com/subject/idaogctx.html