zoukankan      html  css  js  c++  java
  • java 核心学习笔记(四) 单例类

    如果一个类始终只能创建一个实例,那么这个类被称作单例类。

    一些特殊的应用场景可能会用到,为了保证只能创建一个实例,需要将构造方法用private修饰,不允许在类之外的其它地方创建类的实例。

    又要保证可以创建该类的实例,所以需要一个public方法来创建该类的实例,由于在创建之前并没有该类的对象存在,所以只能使用类来调用此方法,故用static修饰。

    同时需要将该类创建得到的实例分配一个引用才能知道该实例是否存在与是否唯一,所以需要一个成员变量保存创建的对象,同时由于该对象由上述静态方法创建,则该成员变量也必须是成员变量,与静态方法一起在类装载时初始化。

    所以代码应该这样写;

    import com.sun.tools.xjc.reader.xmlschema.bindinfo.BIConversion;
    
    public class SingletonTest {
        public static void main(String[] args){
            String str = new String();
            System.out.println();
            if(str == null){
                System.out.println("str == null");
            }
            else if(str.equals("")){
                System.out.println("str.equal('')");
            }
            else{
                System.out.println(str);
            }
    
    
            Singleton singleton = Singleton.getTheSingleton();
            Singleton singleton1 = Singleton.getTheSingleton();
            System.out.println(singleton == singleton1);
        }
    
    }
    
    
    class Singleton{
        private static  Singleton singleton;
        private Singleton(){};
        public static Singleton getTheSingleton(){
            //如果该静态对象还没初始化(对象的创建包含声明和初始化),就创建一个。
            if(singleton == null) singleton = new Singleton();
            return singleton;
        }
    }

     java JDK中的Runtime类就是一个单例类,代表当前java程序的运行时环境,由于运行时环境的唯一性,所以该类被设计为单例类,获取该类可用如下代码

    Runtime runtime = Runtime.getRuntime();

    Runtime类的一个重要功能就是单独启动一个进程来运行操作系统的一个命令

    runtime.exec("notepad.exe");
    

      上述代码将启动Windows里的记事本程序。

  • 相关阅读:
    个推微服务网关架构实践
    NB-IoT 的“前世今生”
    个推基于Consul的配置管理
    个推Node.js 微服务实践:基于容器的一站式命令行工具链
    个推用户画像的实践与应用
    TensorFlow分布式实践
    个数是如何用大数据做行为预测的?
    QCon技术干货:个推基于Docker和Kubernetes的微服务实践
    基于CMS的组件复用实践
    数据可视化:浅谈热力图如何在前端实现
  • 原文地址:https://www.cnblogs.com/Theshy/p/7475021.html
Copyright © 2011-2022 走看看