您的位置:首页 > 编程语言 > Java开发

java学习笔记_单例模型

2013-11-03 19:04 183 查看
/*单例模型:保证该类中的对象的唯一性

* 1.建立私有静态对象

* 2.不让其他类建立该类对象

* 3.对外提供对对象

*/
class
Singer{

private static Singer s=new Singer();

private Singer(){}

public static Singer GetSinger(){

return s;

}

//以上是饿汉式单例模型

private int age;

public void SetAge(int age){

this.age = age;

}

public int GetAge(){

return age;

}

}

public class SingerDemo {

public static void main(String[] args){

Singer s1=Singer.GetSinger();

s1.SetAge(32);

System.out.println(s1.GetAge());
}

}

懒汉式
class Singer{

private static Singer s=null;

private Singer(){}

public static Singer GetSinger(){

if (s==null)

s=new Singer();

return s;

}
//以上是懒汉式

public int age;

public void SetAge(int age){

this.age = age;

}

public int GetAge()

{

return age;

}

}

饿汉式比懒汉式在开发用得多
第一,饿汉式在加载类是就加载对象,懒汉式在加载类时对象为空,需要时加载。但是一般用到此方法是都是有对象的。
第二,懒汉式存在安全隐患,当多线程同时访问调用该类是会出现多个对象的可能,需要加入关键字(加锁)synchronized(保证同时),但是加入此关键字会使程序调用变慢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: