淘先锋技术网

首页 1 2 3 4 5 6 7

Java中的懒汉模式和饿汉模式是两种常用的单例设计模式,用于保证一个类在整个应用程序中只有一个实例对象。下面我们来看看这两种模式的实现。

//懒汉模式(线程不安全)
public class SingletonLazy {
private static SingletonLazy instance;
private SingletonLazy(){}
public static SingletonLazy getInstance(){
if(instance == null){
instance = new SingletonLazy();
}
return instance;
}
}
//饿汉模式(线程安全)
public class SingletonHungry {
private static final SingletonHungry instance = new SingletonHungry();
private SingletonHungry(){}
public static SingletonHungry getInstance(){
return instance;
}
}

在以上代码中,懒汉模式是在第一次调用getInstance()方法时创建实例对象,而饿汉模式则是在类加载时就创建实例对象。

需要注意的是,懒汉模式在多线程下可能会出现线程安全问题,可以通过加锁解决,但会降低效率。而饿汉模式的实例对象一旦创建就不会发生变化,因此是线程安全的。

总的来说,懒汉模式适用于单线程环境下,或是对于get()方法并不频繁使用的情况。而饿汉模式适用于多线程环境下,或是对于get()方法频繁使用的情况。