单例模式,android编程和Java编程

在做Java开发过程中,常常使用设计模式会使我们的开发效率大大提高。面试中也常常会问道关于设计模式的相关问题,本文提供Java的一种设计模式《单例模式》。这种模式可用于Java后端和Android开发的一部分同学。

所谓单例模式就是在内存中只实例化一个类,对于比较耗内存的类,实例化一次,大大提高了开发的效率。单例模式一共分为两种,分别是懒汉式和饿汉式。

懒汉式:

优点:第一次调用才开始初始化,避免的内存的消耗。

缺点:必须加锁关键字才能保证线程的安全,影响效率

public class Singleton {  
	//1.私有一个成员变量
    private static Singleton instance;  
    //2.私有一个构造方法
    private Singleton (){} 
    //3.提供一个对外接口,同时用synchronized关键字保证线程安全
    public static synchronized Singleton getInstance() {  
    if (instance == null) {  
        instance = new Singleton();  
    }  
    return instance;  
    }  
    //用来测试的方法
    public void showMessage(){
       System.out.println("Hello 懒汉式!");
    }
}

饿汉式:这种方法比较常用,但容易产生垃圾对象

优点:不用加锁,效率高

缺点:类一旦加载就初始化,浪费内存

public class SingleObject {
 
   //1.让构造函数为 private,这样该类就不会被实例化
   private SingleObject(){}
   //2.私有SingleObject 的一个对象
   private static SingleObject instance = new SingleObject();
 
   //3.提供一个对外的接口,用来获取SingleObject对象
   public static SingleObject getInstance(){
      return instance;
   }
   //用来测试的方法
   public void showMessage(){
      System.out.println("Hello 饿汉式!");
   }
}

main方法

public static void main(String[] args) {
		SingleObject.getInstance().showMessage();//饿汉式
		Singleton.getInstance().showMessage();   //懒汉式

	}

一般情况下,我们不建议使用懒汉式,因为在多线程的执行中,会出现线程不安全的情况。如果把方法加上锁,就会大大降低代码的执行效率,非常不利于开发。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值