单例模式分为两种:懒汉模式/饿汉模式,其中懒汉模式的线程是非安全的,但是对象在使用时才创建,因此在一定程度上节省了内存空间。饿汉模式的线程是安全的,但是因为提前创建,使用时直接使用,因此相对懒汉模式占用了许多空间。下面用代码来简单介绍两种模式:
1.懒汉模式:
public class Singleton01{
private static Singleton01 single = null;
ThreadLocal<Singleton01> thread = new ThreadLocal<Singleton01>();//因为懒汉模式的线程为非安全的,因此我们可以使用ThreadLocal来保证懒汉模式的线程安全
private Singleton01(){}
public Singleton01 getInstance(){
single = thread.get();
if(single == null){
single = new Singleton01();
thread.set(single);
}
return single;
}
}
一个简单的懒汉模式的大力模式写完了,下面来完成饿汉模式:
public class Singleton01{
private static Singleton02 single = new Singleton02();
private Singleton02(){}
public Singleton02 getInstance(){
return single;
}
}
最简单的单利模式的简单应用介绍完了,作为一个刚刚入门的小菜鸟,抱着开源的心态与大家分享自己学习的所得,希望能得到大神的帮助和指点,也希望能给用到的人带来一些帮助,谢谢大家