单例模式在JDK中的使用

一 点睛

Runtime类是使用的单例设计模式。

二 分析

通过源代码查看使用的是哪种单例模式

public class Runtime {
          
   
    private static Runtime currentRuntime = new Runtime();

    /**
     * Returns the runtime object associated with the current Java application.
     * Most of the methods of class <code>Runtime</code> are instance
     * methods and must be invoked with respect to the current runtime object.
     *
     * @return  the <code>Runtime</code> object associated with the current
     *          Java application.
     */
    public static Runtime getRuntime() {
          
   
        return currentRuntime;
    }

    /** Dont let anyone else instantiate this class */
    private Runtime() {
          
   }
    ...
}

从上面源代码中可以看出Runtime类使用的是饿汉式(静态属性)方式来实现单例模式的。

三 使用Runtime类中的方法

public class RuntimeDemo {
          
   
    public static void main(String[] args) throws IOException {
          
   
        // 获取Runtime类对象
        Runtime runtime = Runtime.getRuntime();
        // 返回 Java 虚拟机中的内存总量。
        System.out.println(runtime.totalMemory());
        // 返回 Java 虚拟机试图使用的最大内存量。
        System.out.println(runtime.maxMemory());

        // 创建一个新的进程执行指定的字符串命令,返回进程对象
        Process process = runtime.exec("ipconfig");
        // 获取命令执行后的结果,通过输入流获取
        InputStream inputStream = process.getInputStream();
        byte[] arr = new byte[1024 * 1024* 100];
        int b = inputStream.read(arr);
        System.out.println(new String(arr,0,b,"gbk"));
    }
}

四 执行结果

257425408
3797417984

Windows IP 配置
经验分享 程序员 微信小程序 职场和发展