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(保证同时),但是加入此关键字会使程序调用变慢。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值