懒汉饿汉

2023-05-04 19:32:21 浏览数 (2)

懒汉饿汉

单例

的目的是保证某个类仅有一个实例。当有某些类创建对象内存开销较大时可以考虑使用该模式。单例模式又分为 饿汉式 和 懒汉式 。

饿汉

该模式在类被加载时就会实例化一个对象

代码语言:javascript复制
public class Person {
    //饿汉式单例
    private static Person person = new Person();
    private Person(){}
​
    public static Person getInstance(){
    return person;
    }
}
特点

该模式能简单快速的创建一个单例对象,而且是线程安全的(只在类加载时才会初始化,以后都不会)。但它有一个缺点,就是不管你要不要都会直接创建一个对象,会消耗一定的性能(当然很小很小,几乎可以忽略不计,所以这种模式在很多场合十分常用而且十分简单)

懒汉

该模式只在你需要对象时才会生成单例对象

代码语言:javascript复制
public class User {
    //懒汉式单例,只有在调用getInstance时才会实例化一个单例对象
    public static User user; 
    private User(){
​
    }
​
    public static User getInstance(){
    if(user==null){       //step 1.
    user = new User();  //step 2
    }
    return user;
    }
}
特点

线程不安全

0 人点赞