Java单例模式浅谈
来源:互联网 发布:知乎护肤品各经典产品 编辑:程序博客网 时间:2024/05/16 07:25
在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java学习,请登陆疯狂java官网。
设计模式这块一直是自己薄弱之处,常用的无非是单例模式和简单工厂模式。前不久去面试,当被问到为什么要用单例模式时,却用了单例模式的优点来做答,结果可想而知,后面又重新看了下单例模式,又加深了其了解,这里记下以共享。
之所以用单例模式,主要是由于某些特殊场景只能存在一个实例,例如一些计数,或如一些排号等。单例模式的优点是内存占用相对少,因为系统只存在一个实例。
我们一般会像以下这样写出单例模式:
Java代码
public class Singleton {
private static Singleton instance = null;
private Singleton() {}
public static Singleton getInstance() {
if (null == instance) {
instance = new Singleton();
}
return instance;
}
}
后在网上看到说是这种写法当在多线程并发的情况下,就有可能会创建出多个实例,解决办法有多种,一种是在声明实例时进行初始化,一种是对获取实例方法加上synchronized:
Java代码
public class Singleton {
// 方法一
private static Singleton instance = newSingleton();
private Singleton() {}
// 方法二
public synchronized static SingletongetInstance() {
return instance;
}
}
初始化instance,由于前面有了static关键字,保存了这一行代码只会执行一次,下面的获取
实例getInstance方法加了同步关键字synchronized解决了并发问题。
疯狂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。技术知识沉淀深厚的老师,让你感受Java的魅力,激发你对于编程的热爱,让你在半年的时间内掌握8-10万的代码量,掌握Java核心技术,成为真正的技术高手;通过大量全真企业项目疯狂训练,迅速积累项目经验。让你成为技能型的现代化高端人才,迅速获得高薪就业!时间不等人,赶紧联系我们吧!
- Java单例模式浅谈
- 浅谈Java单例模式
- Java单例模式浅谈
- 浅谈java单例模式
- 浅谈Java单例模式
- Java-设计模式-单例模式浅谈
- 浅谈java中的单例模式
- 浅谈单例模式
- 浅谈单例模式
- 单例模式浅谈
- 浅谈单例模式
- 浅谈单例模式
- 单例模式浅谈
- 浅谈单例模式
- 浅谈-单例模式
- 浅谈单例模式
- 浅谈单例模式
- 浅谈单例模式
- .net 2007数据库性能分析(分页)
- Oracel 编写控制结构
- 编译预处理
- 【rmzt】XP系统动漫桌面主题下载
- Java虚拟机类加载
- Java单例模式浅谈
- 展讯称三星两款功能机使用其基带芯片
- 纯收藏贴,git服务器搭建,客户端使用
- s5pv210开发板 sin210 linux 例程 LED 应用程序
- oracle插入和查询日期型数据例子
- DB_Links创建际删除
- jQuery学习12---动态添加控件,网站列表的实现
- .net 2007数据库性能分析(插入)
- kindsoft 文本编辑器 非常好用