知识大全 Java单例模式实现
Posted 知
篇首语:人还是要乐观,心碎了就对自己说,碎碎平安。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java单例模式实现相关的知识,希望对你有一定的参考价值。
Java单例模式实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
单例模式
Q :什么是单例模式呢?
A :单例模式确保某个类只有一个实例 大家想用这个类的对象的时候 只能拿到一个共同的实例 单例类要自行创建实例
Q :为什么要用到单例模式?
A :如果有一个复杂的类 我们总要使用它的对象 那我们岂不是总要new这个对象 这样 会消耗我们的内存 所以我们要选用单例模式
下面通过一个简单的例子说明单例模式的实现方法
//普通的类 通过new来创建新的对象 每次创建都会得到不同的实例
public class SingletonDemo
//构造方法
public SingletonDemo ()
//普通方法
public void singleLove()
System out println( Persist for you! )
//使用第一种方式的单例模式类 通过公共属性来创建对象
public class SingletonDemo
//第一种实现单例模式的方法 通过公共属性来实现实例化
//声明一个公共的静态属性 使只被实例化一次
public static final SingletonDemo singletonDemo = new SingletonDemo ()
//声明一个私有的构造方法 使别人不能随便new对象
private SingletonDemo ()
//普通的方法
public void singleLove()
System out println( Always persist for you! )
//使用第二种方式的单例模式类 通过 getInstance()来创建对象
public class SingletonDemo
//第二种实现单例模式的方法 通过方法来实现实例化
//声明一个私有的静态属性 使只被实例化一次
private static final SingletonDemo singletonDemo = new SingletonDemo ()
//声明一个私有的构造方法 使别人不能随便new对象
//它只被调用一次 实例存在之后就不再调用了
private SingletonDemo ()
//声明一个公共的静态方法 外界通过调用这个方法来得到唯一的实例
public static SingletonDemo getInstance()
return singletonDemo;
//普通的方法
public void singleLove()
System out println( Persist for you always! )
public class Test //测试方法 public static void main(String[] args)
//测试
SingletonDemo singleton = new SingletonDemo ()
singleton singleLove()
SingletonDemo singleton = new SingletonDemo ()
singleton singleLove()
boolean flag = singleton equals(singleton )
System out println( 用equals的方法来判断 )
System out println( 此时的flag= + flag)
if(flag)
System out println( 他们的内存地址是一样的哦 这说明他们是同一个实例 实现了单例模式! )
else
System out println( 他们的内存地址不一样 则说明他们是不同的实例 )
//测试
SingletonDemo singleton = SingletonDemo singletonDemo;
singleton singleLove()
SingletonDemo singleton = SingletonDemo singletonDemo;
singleton singleLove()
int addr = singleton hashCode()
int addr = singleton hashCode()
System out println( 用hashCode来判断 )
if(addr == addr )
System out println( 内存地址是一样的哦 则说明他们是同一个实例 实现了单例模式 )
else
System out println( 他们的内存地址不一样 则说明他们是不同的实例 )
//测试
SingletonDemo single = SingletonDemo getInstance()
single singleLove()
SingletonDemo single = SingletonDemo getInstance()
single singleLove()
boolean flag = single equals(single )
System out println( 用equals来判断 )
System out println( 此时的flag= + flag )
if(flag )
System out println( 内存地址是一样的哦 则说明他们是同一个实例 实现了单例模式 )
else
System out println( 他们的内存地址不一样 则说明他们是不同的实例 )
cha138/Article/program/Java/hx/201311/26571
相关参考
Java与模式之单例模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 单例模式(Singlet
设计模式解决某一类问题最行之有效的方法(java中有种通用设计模式) 单例设计模式解决一个类在内存中只存在一个对象 单例设计模式有两种方式 )饿汉式 先初始化对象当类一进内存就创建好对象
Java模式设计之单例模式(二) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在什么情况下使用
Java模式设计之单例模式(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 作为对象的创建模
Java程序性能优化-单例模式(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Java程序性能优化-单例模式(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Java程序性能优化-单例模式(3) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 23种设计模式的Java版--Singleton(单例)
23种设计模式的Java版--Singleton(单例) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
Java中单例模式的几种正确实现方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 第一种同步
.Net单例模式(Singleton) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!单例模式的意思