单例模式分为恶汉式,就是直接在类中new出,直接返回对象,懒汉式是在调用对象时判断对象是否是null,如果null,先new出,再返回,否则直接返回对象,但是这种方式会线程不安全,所以采用双重检查的设计思想,保证线程安全。
package singleton;
public class Teacher3 {
private Teacher3(){}
private static Teacher3 t=null;
public static Teacher3 getTeacher3(){
if(t==null){
synchronized (Teacher3.class) {
if(t==null){
t=new Teacher3();
}
}
}
return t;
}
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
第二种方式,内部类方式
package test;
/**
* 在多线程中使用单例对象的设计模式,内部类
*
*/
public class InnerSingleton {
private static class Singleton{
private static Singleton s=new Singleton();
public void add(){
}
}
public static Singleton getSingleton(){
return Singleton.s;
}
public static void main(String[] args) {
Singleton singleton = InnerSingleton.getSingleton();
singleton.add();
}
}