Java System与Runtime类常用方法

 

一、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 ~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值