A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

单例设计模式中懒汉式和恶汉式的区别和用法,总是搞混了,求高人指点。。。

3 个回复

倒序浏览
饿汉式  就是总是先创建对象  
public class Person()(
private Person(){}
private static Person p = new Person();
public static Person getPerson(){
return p;
}
)
懒汉式 就是在调用的时候才创建对象  
class Person(){
private Person(){}
public static Person getPerson(){
return p = new Person();
}
}
回复 使用道具 举报
两种方式在平时的使用中区别不大,一定要说两者的区别的话,
饿汉式属于预加载,即jvm在启动的时候就已经将该实例创建;
懒汉式属于需要的时候,调用该类的方法才第一次也是唯一一次创建这个实例;
2楼的写法其实不规范,因为懒汉式涉及到多个线程都可能调用提供单例的方法,所以需要加锁来保持同步的效果。
class Person(){
private Person(){}
public syncronized static Person getPerson(){
return p = new Person();
}
}
回复 使用道具 举报
三步走战略
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马