PS: Java程序在不同操作系统上运行时,可能需要取得平台相关的属性,或者调用平台命令来完成特定功能。java提供了System类与Runtime类来与程序的运行平台进行交互。
System类:
1.代表当前java程序的运行平台,程序不能创建System类的对象,System类提供了一些类变量和类方法,允许直接通过Sytem类来调用这些类变量和类方法。
2. System类提供了代表标准输入、标准输出和错误输出的类变量,并提供了一些静态方法用于访问环境变量、系统属性的方法,还提供了加载文件和动态链接库的方法(主要对native方法有用)
3.提供了通知系统进行垃圾回收的gc()方法,以及通知系统进行资源清理的runFinalization()方法
4.提供两个获取系统当前时间的方法:currentTimeMillis()和nanoTime(),返回一个long型整数,返回的是与1970年1月1日与当前的时间差,前者以毫秒为单位,后者以纳秒
5.in.out.err分别代表系统的标准输入(通常是键盘)标准输出(通常是显示器)和错误输出流,并提供了setIn、setOut、setErr方法来改变系统的标准输入、标准输出、标准错误输出流
6.提供identityHashCode(Object x)方法,获取根据该对象地址计算得到的hashCode值,如果两个对象的hashCode值相等,一定是同一个对象
Runtime类:
代表java程序的运行时环境,每个java程序都有一个与之对应的RunTime实例,应用程序通过该对象与其运行时环境相连(应用程序不能创建自己的RunTime实例,但是可以通过getRuntime()方法获取与之相关的Runtime对象)
1.也提供了通知系统进行垃圾回收的gc()方法,以及通知系统进行资源清理的runFinalization()方法
2.提供了load()和 loadLibrary()方法来加载文件和动态链接库
3.Runtime类代表java程序的运行时环境,可以获取JVM的相关信息,如处理器数量、内存信息等
4.可以直接单独启动一个进程来运行操作系统的命令