以前java的学习中对于单例模式是再熟悉不过了,对于单例模式的实现方法也是再熟悉不过了。通常设计模式中交给我们懒汉式还有饿汉式两种实现方法,代码如下:
public class Singleton {
private Singleton(){}
private static Singleton singleton = null ;
public static Singleton getInstance(){
if(singleton==null){
return new Singleton();
}
return singleton;
}
} public class Singleton {
private Singleton(){}
private static Singleton singleton = new Singleton() ;
public static Singleton getInstance(){
return singleton;
}
}
今天在看公司代码的时候又发现一种比较灵巧的实现方式,实现方式是通过内部类实现的,代码如下:
public class Singleton {
private Singleton(){}
private static class Inner{
static Singleton singleton = new Singleton();
}
public static Singleton getInstance(){
return Inner.singleton;
}
} public class Test{
public static void main(String[] args) {
Singleton singleton = Singleton.getInstance();//这样同样可以获取到singleton的单例
}
}
本文介绍了Java中实现单例模式的三种常见方法:懒汉式、饿汉式及使用内部类的方式。其中,内部类实现是一种较为巧妙的方法,不仅能够确保线程安全,还能避免同步带来的性能损失。
804

被折叠的 条评论
为什么被折叠?



