zoukankan      html  css  js  c++  java
  • Runtime 源码阅读

    Runtime

    • 属性说明
    /**
     *  每一个 Java 应用程序都有一个关联的运行时对象
     *
     * @author  unascribed
     * @see     java.lang.Runtime#getRuntime()
     * @since   1.0
     */
    public class Runtime {
        /**
         *  当前 JVM 的运行时对象
         */
        private static final Runtime currentRuntime = new Runtime();
        
        /**
         *  JavaSE 的版本
         */
        private static Version version;
    
    • 常用方法
        /**
         *  获取当前 Java 应用程序的运行时对象
         */
        public static Runtime getRuntime() {
            return currentRuntime;
        }
    
        /**
         *  终止当前运行的 Java 虚拟机,非 0 状态码表示异常退出。
         *
         * @param  status   终止状态码
         */
        public void exit(int status) {
            final SecurityManager security = System.getSecurityManager();
            if (security != null) {
                security.checkExit(status);
            }
            Shutdown.exit(status);
        }
    
        /**
         *  返回此 JVM 可用的逻辑处理器数量
         * @since 1.4
         */
        public native int availableProcessors();
    
        /**
         *  此 JVM 能使用的最大内存
         * @since 1.4
         */
        public native long maxMemory();
    
        /**
         *  返回此 JVM 当前可用的内存总量
         */
        public native long totalMemory();
    
        /**
         *  返回此 JVM 空闲的近似内存总量
         */
        public native long freeMemory();
    
        /**
         *  注册一个 JVM 关闭钩子
         *
         * @param   hook    关闭钩子
         */
        public void addShutdownHook(Thread hook) {
            final SecurityManager sm = System.getSecurityManager();
            if (sm != null) {
                sm.checkPermission(new RuntimePermission("shutdownHooks"));
            }
            ApplicationShutdownHooks.add(hook);
        }
    
        /**
         *  强制终止此 JVM
         *
         * @param  status   终止状态
         */
        public void halt(int status) {
            final SecurityManager sm = System.getSecurityManager();
            if (sm != null) {
                sm.checkExit(status);
            }
            Shutdown.halt(status);
        }
    
        /**
         *  运行垃圾收集器,建议此 JVM 在合适的时刻执行垃圾收集 
         */
        public native void gc();
    
        /**
         *  在单独的进程中执行目标命令 
         *
         * @param   command     一个特定的系统命令
         */
        public Process exec(String command) throws IOException {
            return exec(command, null, null);
        }
    
        /**
         *  在工作目录下执行目标命令,并提供指定的环境变量。
         *
         * @param   cmdarray    目标命令及参数
         * @param   envp    以 name=value 指定的环境变量数组
         * @param   dir     子进程的工作目录
         * @since 1.3
         */
        public Process exec(String[] cmdarray, String[] envp, File dir)
                throws IOException {
            return new ProcessBuilder(cmdarray)
                    .environment(envp)
                    .directory(dir)
                    .start();
        }
    
  • 相关阅读:
    (转)金额转中文大写
    根据方法名称动态调用方法
    sqlplus 一次奇葩问题 HTTP proxy setting has incorrect value
    Oracle 中包的应用
    Scala开发环境搭建
    巧妙利用jQuery和PHP打造类似360安全卫士防火墙功能开关(类似iphone界面)效果
    jquery选择器的实现流程简析及提高性能建议!
    8个超级震憾的Jquery图片特效欣赏,考验你的浏览器!
    分享七个绚丽夺目的JQuery导航(还有苹果、猪八戒等),有图有真相
    jQuery多媒体播放器插件jQuery Media Plugin使用方法
  • 原文地址:https://www.cnblogs.com/zhuxudong/p/10501657.html
Copyright © 2011-2022 走看看