/**
饿汉实现:
类加载时创建对象
缺点: 无论对象是否需要都先把对象创建好,浪费堆空间
*/
class ClassA{
private static final ClassA instance = new ClassA();
public static ClassA newInstance(){
return instance;
}
/*
构造方法必须私有
*/
private ClassA(){
}
}
/**
懒汉式实现
在需要对象的时候,才会创建对象。
缺点:并发效率低 在多线程的情况下,
创建一半时,cpu跳转到另一个线程,
因此要想实现单例必须加锁
*/
class ClassB{
private static ClassB instance=null;
public static synchronized ClassB newInstance(){
if(instance == null){
instance = new ClassB();
return instance;
}
}
/*
构造方法必须私有
*/
private ClassB(){
}
}
/**
融合两种缺点
*/
class ClassC{
/*
内部类和外部类加载时是两个独立的.class文件
*/
private static class Holder{
static ClassC instance = new ClassC();
}
private static ClassC newInstance(){
return Holder.instance;
}
/*
构造方法必须私有
*/
private ClassC(){
}
}
java中单例模式的实现
猜你喜欢
转载自blog.csdn.net/weixin_45522160/article/details/104642362
今日推荐
周排行