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.饿汉式
在类加载时,就进行实例化
解决了懒汉式中多线程访问可能出现同一个对象和效率低问
题
网友评论