Java程序性能优化-单例模式(1)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java程序性能优化-单例模式(1)相关的知识,希望对你有一定的参考价值。
参考技术A单例模式( )
单例模式是设计模式中使用最为普遍的模式之一 它是一种对象创建模式 用于产生一个对象的具体实例 它可以确保系统中一个类只产生一个实例 在Java语言中 这样的行为能带来两大好处
( )对于频繁使用的对象 可以省略创建对象所花费的时间 这对于那些重量级对象而言 是非常可观的一笔系统开销
( )由于new操作的次数减少 因而对系统内存的使用频率也会降低 这将减轻GC压力 缩短GC停顿时间
因此对于系统的关键组件和被频繁使用的对象 使用单例模式便可以有效地改善系统的性能
单例模式的参与者非常简单 只有单例类和使用者两个 如表 所示
表 单例模式角色
它的基本结构如图 所示
图 单例模式类图
单例模式的核心在于通过一个接口返回唯一的对象实例 一个简单的单例实现如下
public class Singleton
private Singleton()
System out println( Singleton is create ) //创建单例的过程可能会比较慢
private static Singleton instance = new Singleton()
public static Singleton getInstance()
return instance;
注意代码中的重点标注部分 首先单例类必须要有一个private访问级别的构造函数 只有这样 才能确保单例不会在系统中的其他代码内被实例化 这点是相当重要的 其次 instance成员变量和getInstance()方法必须是static的
注意 单例模式是非常常用的一种结构 几乎所有的系统中都可以找到它的身影 因此 希望读者可以通过本节 了解单例模式的几种实现方式及其各自的特点
这种单例的实现方式非常简单 而且十分可靠 它唯一的不足仅是无法对instance实例做延迟加载 假如单例的创建过程很慢 而由于instance成员变量是static定义的 因此在JVM加载单例类时 单例对象就会被建立 如果此时 这个单例类在系统中还扮演其他角色 那么在任何使用这个单例类的地方都会初始化这个单例变量 而不管是否会被用到 比如单例类作为String工厂 用于创建一些字符串(该类既用于创建单例Singleton 又用于创建String对象)
public class Singleton
private Singleton()
System out println( Singleton is create )
//创建单例的过程可能会比较慢
private static Singleton instance = new Singleton()
public static Singleton getInstance()
return instance;
public static void createString() //这是模拟单例类扮演其他角色
System out println( createString in Singleton )
返回目录 Java程序性能优化 让你的Java程序更快 更稳定
编辑推荐
Java程序设计培训视频教程
J EE高级框架实战培训视频教程
J ME移动开发实战教学视频
Visual C++音频/视频技术开发与实战
Oracle索引技术
lishixinzhi/Article/program/Java/gj/201311/27837
以上是关于Java程序性能优化-单例模式(1)的主要内容,如果未能解决你的问题,请参考以下文章