1. System类
System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。
1.1 成员变量
System类内部包含in、out和err三个成员变量,分别代表标准输入流(键盘输入),标准输出流(显示器)和标准错误输出流(显示器)。
1.1.1 out与err的区别
System.out在JVM和操作系统都具有缓存功能,就是输出的数据不一定实时输出,有时候会积攒到一定数量才会输出;System.err会实时输出。
1
2
3System.out.println("out输出Java");
System.err.println("err输出Python");
System.out.println("out输出C++");输出结果1:
输出结果2:
由于System.out不是实时输出的,所以直观地造成System.err输出位置的不确定性。如果使用了log4j的日志记录,System.err会被记入日志,System.out不会。
System.out是通常输出信息的方式,System.err是用在显示错误信息或者system.out被重定向以后,需要立即让用户注意到的信息的输出
1.2 成员方法
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
该方法的作用是数组拷贝,src为被拷贝的数组,srcPos为src要拷贝的初始位置,dest为目的数组,目的数组dest放置拷贝数据的初始位置,length为从src拷贝到的数据长度。代码示例
1
2
3
4
5
6
7int[] srcArr = {20, 23, 45, 12, 17, 8};
int[] destArr = new int[5];
System.arraycopy(srcArr, 1, destArr, 2, 2);
System.out.println(Arrays.toString(srcArr)); //[20, 23, 45, 12, 17, 8]
System.out.println(Arrays.toString(destArr)); //[0, 0, 23, 45, 0]注意:执行拷贝之后,源数组不发生变化,而目的数组发生变化。
static long currentTimeMillis()
该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数。static void exit(int status)
该方法的作用是退出程序。其中status的值为0代表正常退出,非零代表异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等。static void gc()
请求系统进行垃圾回收。至于系统是否立刻回收,则取决于系统中垃圾回收算法的实现以及系统执行时的情况。static Properties getProperties()
获取系统的属性信息,并存储到Properties集合中。Properties集合中存储的都是String类型的键值对。static String getProperty(String key)
获得系统中属性名为key的属性对应的值。系统中常见的属性名以及属性的作用如下表所示:
代码示例1
2
3
4
5
6
7
8//获取操作系统名称
String osName = System.getProperty("os.name");
//获取操作系统版本
String osVersion = System.getenv("os.version");
System.out.println("操作系统名:" + osName); //Windows 10
System.out.println("操作系统版本:" + osVersion); //nullstatic String setProperty(String key, String value)
给系统设置一些属性信息,这些信息是全局的,其他程序都可以使用
2. Runtime类
Runtime类封装了运行时的环境。每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。另外该类无法创建对象。
2.1 常用方法
- static Runtime getRuntime()
返回一个Runtime实例 - Process exec(String command)
指定某个exe文件并返回该程序进程,参数command为本地exe文件路径。
代码示例
1 | Runtime runtime = Runtime.getRuntime(); |
- long freeMemory()
返回Java虚拟机中的空闲内存量,以字节为单位 - long maxMemory()
返回Java虚拟机试图使用的最大内存量 - long totalMemory()
返回Java虚拟机中的内存总量
代码示例
1 | Runtime runtime = Runtime.getRuntime(); |
运行结果
1 | 虚拟机空闲内存量:126930080 |
参考文章:
https://www.cnblogs.com/xuhuan/articles/1522212.html
https://blog.csdn.net/zhuwei1035838807/article/details/79464603