java单例模型---懒汉式和饿汉式代码及比较 .

/*单例模型:保证该类中的对象的唯一性
 * 1.建立私有静态对象
 * 2.不让其他类建立该类对象
 * 3.对外提供对对象
 */

class simple1{
 
private static simple1 s=new simple1();
 private simple1(){}
 public static simple1 getsimple()

{
  return s;

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


 private int age;
 public void setage(int age)
 {
  this.age=age;
 }
 public int getage()
 {
  return age;
 }
 }


public class simple {

  public static void main(String[] args)

{
  simple1 s1=simple1.getsimple();
  s1.setage(32);
   System.out.println(s1.getage());

}}

 

 

懒汉式

class single2
{
 private static single2 s=null;
 private single2(){}
 public static single2 getsingle2(){
  if (s==null)
   s=new single2();
  return s;
 }

//以上是懒汉式
 public int age;
 public void setage(int age){
  this.age=age;
 }
 public int getage()
 {
  return age;
 }
 
 
 
}

饿汉式比懒汉式常用

第一,饿汉式在加载类是就加载啦对象,懒汉式在加载类时对象为空,需要时加载。但是一般用到此方法是都是有对象的。

第二,懒汉式存在安全隐患,当多线程同时访问调用该类是会出现多个对象的可能,需要加入关键字synchronized(保证同时),但是加入此关键字会使程序调用变慢。

 

posted @ 2012-12-10 14:49  wangyanxiang  阅读(182)  评论(0)    收藏  举报