java单例模式是最常用到的设计模式之一,最基本的有懒汉式和饿汉式两种实现形式。单例的实现可以按下面两句话记
1.构造方法私有化
2.内部方法给出实例对象
本文参考https://blog.51cto.com/aiilive/2164281文章所改。
所以有如下几种方式比较适合
1.饿汉式
public class Singleton{
private Singleton singleton=new Singleton();
private Singleton(){
}
public Singletion getSingletion()
{
return singleton;
}
}
这是最简单的一种方式:线程安全,但是没有使用懒加载
测试方式
//测试方法
public static void main(String [] args){
//输出:true 单例正确,否则错误
System.out.println(Singleton.getInstance()==Singleton.getInstance());
}
2.双重加锁懒汉式单例
public class Singletion{
private static volatile Singletion singleton;
private Singletion(){
}
public Singletion getSingletion(){
if(singleton==null)
{
synchronized(singleton.class)
{
return new Singletion();
}
}
return singleton;
}
}
双重加锁,线程安全。
3.枚举单例
enum Singletion{
INCETANCE;
public String method()
{
return "HELLOWORLD";
}
}
public class instance{
public static void main(String[] args)
{
// System.out.println(Singletion.INCETANCE==Singletion.INCETANCE);
System.out.println(Singletion.INCETANCE.method());
}
}
网友评论