zoukankan      html  css  js  c++  java
  • java里的 懒汉和恶汉模式-----讲解

    ------------java中的恶汉模式

      

    public void Test{
    
       private static Test inte = new Test(); // 内部自己创建好实例,私有属性(不建议在外部直接调用我们的成员变量)
      //私有的构造方法
       private Test{
    //定义私有的构造方法,禁止外部直接创建实例
    } public static Test getTest() { return inte; } }///创建一个方法,使外部可以得到此实例 

      

     恶汉模式的优劣:

    》》》1,恶汉式 加载类的时候比较慢,运行比较快

    》》》2

     1,定义私有的构造方法,禁止外部直接创建实例

     2,内部自己创建好实例,私有属性(不建议在外部直接调用我们的成员变量)

     3,创建一个方法,使外部可以得到此实例

     ---------------------java中的懒汉模式

    /** * 懒汉式 加载类的时候比较快,运行时比较慢 *

     * 1,创建私有构造方法,禁止外部直接创建实例 *

    *  2,创建私有变量实例化对象,私有属性(不建议在外部直接调用我们的成员变量)

       3,创建方法,使外部可以调用我们的私有对象实例 

     

    public  class Test{
    
    
       private Test{}   //定义私有的构造 ,禁止外部直接创建示例
    
       private static Test test = null;  //创建私有实例
    
      
      public Test getTest(){  //创建方法,使外部可以调用我们的私有对象实例
    
        
       returen test;
     
      }
    
    
    }
    

        **  这样也是可以的,不过,如果涉及到多线程,最好加上一个同步锁(synchronized)可以

         * * 直接在方法上添加 但是每次都要去进行同步,显然不是最好的。

         * * 最好的当然是下面的,在方法中进行加上

          synchronized * @return */

           public static Singleton getInstance() {

           if (instance == null){

             synchronized (Singleton.class){

          if (instance == null)  {

         instance = new Singleton();

         } } } return instance; }

     

     

  • 相关阅读:
    LIB和DLL
    string
    Lists
    ctypes常用dll
    tomcat的安装配置注意事项
    tomcat6的简单安装
    存储GFS 学习笔记
    进程是否启动查看命令方法
    (转载)最新linux搭建gfs系统iscsi+GFS实现网络存储
    推荐两款支持在linux下运行ASP.NET网站的国产免费WEB服务器软件
  • 原文地址:https://www.cnblogs.com/zhangyu0217----/p/6529156.html
Copyright © 2011-2022 走看看