/**
* 单例模式 ---懒汉式
* @author YLJ
*
*/
public class User {
private static User user = null;
//效率较低
public synchronized static User getIntence1(){
if(null != user){
user = new User();
}
return user;
}
//效率较低
public static User getIntence2(){
synchronized(User.class){
if(null != user){
user = new User();
}
}
return user;
}
//双锁 效率高
public static User getIntence3(){
if(null != user){ //存在对象不需要等待,提高效率
synchronized (User.class) {
if(null != user){
user = new User();
}
}
}
return user;
}
private User(){}
}
/**
* 单例模式 === 饿汉式
* @author YLJ
*
*/
class Role {
private static Role role = new Role();
private Role(){}
public static Role getInstanse(){
return role;
}
}
/**
* 单例模式 === 饿汉式2
* @author YLJ
*
*/
class Role2 {
private static class INTER{
private static Role2 role = new Role2();
}
private Role2(){}
public static Role2 getInstanse(){
return INTER.role;
}
}