public class Person {
//定义静态私有的本类型成员变量,并创建对象供方法返回
private static Person p;
//私有化构造方法,让外界无法直接创建对象
private Person() {
}
//对外提供静态公共的获取实例方法,不考虑安全,不考虑效率
public static Person getInstance() {
//判断是否已经有实例对象
if(p==null) {
//如果没有对象,才创建
p = new Person();
}
return p;
}
//对外提供静态公共的获取实例方法,考虑安全,不考虑效率
public synchronized static Person getInstance() {
//判断是否已经有实例对象
if(p==null) {
//如果没有对象,才创建
p = new Person();
}
return p;
}
//对外提供静态公共的获取实例方法,考虑安全,不考虑效率
public static Person getInstance() {
synchronized (Person.class) {
//判断是否已经有实例对象
if(p==null) {
//如果没有对象,才创建
p = new Person();
}
}
return p;
}
//对外提供静态公共的获取实例方法,考虑安全,考虑效率
public static Person getInstance() {
//为了判断是否执行同步
if(p==null) {
synchronized (Person.class) {
//为了判断是否创建对象
if(p==null) {
//如果没有对象,才创建
p = new Person();
}
}
}
return p;
}
} |
|