知识大全 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与模式之单例模式

Java与模式之单例模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  单例模式(Singlet

知识大全 java之单例设计模式

  设计模式解决某一类问题最行之有效的方法(java中有种通用设计模式)  单例设计模式解决一个类在内存中只存在一个对象  单例设计模式有两种方式  )饿汉式  先初始化对象当类一进内存就创建好对象 

知识大全 Java模式设计之单例模式(二)

Java模式设计之单例模式(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在什么情况下使用

知识大全 Java模式设计之单例模式(一)

Java模式设计之单例模式(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  作为对象的创建模

知识大全 Java程序性能优化-单例模式(1)

Java程序性能优化-单例模式(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 Java程序性能优化-单例模式(2)

Java程序性能优化-单例模式(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 Java程序性能优化-单例模式(3)

Java程序性能优化-单例模式(3)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 23种设计模式的Java版--Singleton(单例)

23种设计模式的Java版--Singleton(单例)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 Java中单例模式的几种正确实现方法

Java中单例模式的几种正确实现方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  第一种同步 

知识大全 .Net 单例模式(Singleton)

.Net单例模式(Singleton)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!单例模式的意思