您当前的位置: 首页 >  Java

Charge8

暂无认证

  • 1浏览

    0关注

    447博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java System与Runtime类常用方法

Charge8 发布时间:2019-07-23 17:46:36 ,浏览量:1

 

一、System类

System类包含几个有用的类字段和方法。 它不能被实例化。

System类提供的System包括标准输入,标准输出和错误输出流; 访问外部定义的属性和环境变量; 一种加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法。

    方法等:

    • static voidarraycopy(Object src, int srcPos, Object dest, int destPos, int length)

      将指定源数组中的数组从指定位置复制到目标数组的指定位置。

      static longcurrentTimeMillis()

      返回当前时间(以毫秒为单位)。

      static voidexit(int status)

      终止当前运行的Java虚拟机。

      static voidgc()

      运行垃圾回收器。

      static PropertiesgetProperties()

      确定当前的系统属性。

      static StringgetProperty(String key)

      获取指定键指示的系统属性。

1、arraycopy 数组复制方法

     参数         src - 源数组。         srcPos - 源数组中的起始位置。         dest - 目标数组。         destPos - 目的地数据中的起始位置。         length - 要复制的数组元素的数量。 

    public static void main(String[] args) {
        int[] src = {1,2,3,4,5,6,7,8,9,10};
        int[] dest = new int[10];
        System.arraycopy(src, 3, dest,5,4);
        for (int i : dest) {
            System.out.print(dest[i] + "-"); //0-0-0-0-0-0-4-5-6-0-
        }
    }

2、currentTimeMillis:获取系统当前毫秒值

    public static void main(String[] args) {
        long start = System.currentTimeMillis();

        int[] src = {1,2,3,4,5,6,7,8,9,10};
        int[] dest = new int[10];
        System.arraycopy(src, 3, dest,5,4);
        for (int i : dest) {
            System.out.print(dest[i] + "-"); //0-0-0-0-0-0-4-5-6-0-
        }

        long end = System.currentTimeMillis();
        System.out.println("程序运行时间为毫秒:"+(end-start)); //1
    }

3、exit:终止当前运行的Java虚拟机      该参数作为状态代码; 按照惯例,非零状态码表示异常终止。

        int[] src = {1,2,3,4,5,6,7,8,9,10};
        int[] dest = new int[10];
        System.exit(0);

       

4、gc:运行垃圾回收器。加深理解参考文章:浅谈Java的System.gc()实现

      用来运行JVM中的垃圾回收器,完成内存中垃圾的清除。       调用 System.gc() 方法,不一定能自动调用finalize()方法进行垃圾回收。

public class HelloWorld {
    //清除垃圾时,会默认调用被清空对象的finalize方法。
    @Override
    public void finalize() throws Throwable {
        System.out.println("垃圾来回收了");
    }

    public static void main(String[] args) {
        new HelloWorld();
        System.gc();
    }
}

5、getProperties()  getProperty(String key)  获取当前的系统属性

        System.out.println(System.getProperties());
        System.out.println(System.getProperty("os.name")); // Windows 10

    各个属性关系对应图如下:

     

二、Runtime类

每个Java应用程序都有一个Runtime类的Runtime ,允许应用程序与运行应用程序的环境进行接口。 当前运行时可以从getRuntime方法获得。

应用程序无法创建自己的此类的实例。

== 单例设计模式 ==

   

方法等:

    • intavailableProcessors()

      返回可用于Java虚拟机的处理器数量。

      Processexec(String command)

      在单独的进程中执行指定的字符串命令。

      voidexit(int status)

      通过启动其关闭序列来终止当前正在运行的Java虚拟机。

      longfreeMemory()

      返回Java虚拟机中的可用内存量。

      voidgc()

      运行垃圾回收器。

      static RuntimegetRuntime()

      返回与当前Java应用程序关联的运行时对象。

      longmaxMemory()

      返回Java虚拟机将尝试使用的最大内存量。

      longtotalMemory()

      返回Java虚拟机中的内存总量。

1、测试demo

    public static void main(String[] args) {
        Runtime runtime = Runtime.getRuntime();     // 获取当前程序的runtime
        System.out.println(runtime.availableProcessors());    // 返回可用于Java虚拟机的处理器数量。
        System.out.println(runtime.maxMemory());    // 返回Java虚拟机将尝试使用的最大内存量。
        System.out.println(runtime.freeMemory());   // 返回Java虚拟机中的可用内存量。
        System.out.println(runtime.totalMemory());  // 返回Java虚拟机中的内存总量。
        try {
            runtime.exec("notepad.exe");//打开记事本。
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
====
8
1886912512
124876680
128974848

 

ends ~

关注
打赏
1664721914
查看更多评论
立即登录/注册

微信扫码登录

0.0463s