单例模式中的饿汉式与懒汉式
程序员文章站
2022-06-28 16:15:42
文章目录懒汉式饿汉式懒汉式只在被调用时再创造对象,以时间换空间。线程不安全package com.lsh.model;/** * @author :LiuShihao * @date :Created in 2020/12/31 4:11 下午 * @desc :懒汉式单例 * 等被调用时才创建 * 以时间换空间 */public class Singleton2 { private static Singleton2 s ; //对外提供可以获得...
懒汉式
只在被调用时再创造对象,以时间换空间。线程不安全
package com.lsh.model;
/**
* @author :LiuShihao
* @date :Created in 2020/12/31 4:11 下午
* @desc :懒汉式单例
* 等被调用时才创建
* 以时间换空间
*/
public class Singleton2 {
private static Singleton2 s ;
//对外提供可以获得对象的方法
public static Singleton2 getInstance(){
if (s == null){
s = new Singleton2();
}
return s;
}
//将构造方法私有化
private Singleton2(){
}
}
饿汉式
先把对象创造起来,在被调用是直接返回。以空间换时间,线程安全
package com.lsh.model;
/**
* @author :LiuShihao
* @date :Created in 2020/12/31 4:11 下午
* @desc :饿汉式单例
* 先创建对象在被人调用
* 以空间换时间
*/
public class Singleton1 {
//自己创建对象
private static Singleton1 s = new Singleton1();
//对外提供可以获得对象的方法
public static Singleton1 getInstance(){
return s;
}
//将构造方法私有化
private Singleton1(){
}
}
本文地址:https://blog.csdn.net/DreamsArchitects/article/details/112023638