一、System 类概述
1、System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。
2、由于该类的构造器是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员变量和成员方法都是static的, 所以也可以很方便的进行调用。
二、成员变量
System 类内部包含 in、out和err三个成员变量,分别代表标准输入流(键盘输入),标准输出流(显示器)和标准错误输出流(显示器)。
PrintStream err:“标准”错误输出流。
InputStream in:“标准”输入流。
PrintStream out:“标准”输出流。
Demo:
1 import java.util.Scanner;
2
3 class TestSystem{
4 public static void main(String[] args){
5 Scanner input = new Scanner(System.in);
6 System.out.print("请输入成绩:");
7 int score = input.nextInt();
8
9 if(score>=0 && score<=100){
10 System.out.println("成绩是:" + score);
11 }else{
12 System.err.println("输入有误,成绩应该在[0,100]");
13 }
14 }
15 }
三、成员方法
1、native long currentTimeMillis()
该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数。
2、void exit(int status)
该方法的作用是退出程序。其中status的值为0代表正常退出,非零代表异常退出。 使用该方法可以在图形界面编程中实现程序的退出功能等。
3、void gc()
该方法的作用是请求系统进行垃圾回收。至于系统是否立刻回收,则取决于系统中垃圾回收算法的实现以及系统执行时的情况。
4、Properties getProperties()
获取当前的系统属性;
5、String setProperty(String key, String value)
设置指定键指示的系统属性;
6、String getProperty(String key)
该方法的作用是获得系统中属性名为key的属性对应的值。系统中常见的属性名以及属性的作用如下表所示:
Demo:
1 public static void main(String[] args) {
2 String javaVersion = System.getProperty("java.version");
3 System.out.println("java的version:" + javaVersion);
4 String javaHome = System.getProperty("java.home");
5 System.out.println("java的home:" + javaHome);
6 String osName = System.getProperty("os.name");
7 System.out.println("os的name:" + osName);
8 String osVersion = System.getProperty("os.version");
9 System.out.println("os的version:" + osVersion);
10 String userName = System.getProperty("user.name");
11 System.out.println("user的name:" + userName);
12 String userHome = System.getProperty("user.home");
13 System.out.println("user的home:" + userHome);
14 String userDir = System.getProperty("user.dir");
15 System.out.println("user的dir:" + userDir);
16 }
7、void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
数组的拷贝动作是系统级的,性能很高。
System.arraycopy 方法具有5个参数,含义分别为:
参数序号 | 参数名称 | 参数类型 | 参数含义 |
---|---|---|---|
1 | src | Object | 源数组 |
2 | srcPos | int | 源数组索引起始位置 |
3 | dest | Object | 目标数组 |
4 | destPos | int | 目标数组索引起始位置 |
5 | length | int | 复制元素个数 |
Demo:
1 import java.util.Arrays;
2
3 public class Demo11SystemArrayCopy {
4 public static void main(String[] args) {
5 int[] src = new int[]{1,2,3,4,5};
6 int[] dest = new int[]{6,7,8,9,10};
7 System.arraycopy( src, 0, dest, 0, 3);
8 /*代码运行后:两个数组中的元素发生了变化
9 src数组元素[1,2,3,4,5]
10 dest数组元素[1,2,3,9,10]
11 */
12 }
13 }
8、void setIn(InputStream in)
重新分配“标准”输入流。
9、void setOut(PrintStream out)
重新分配“标准”输出流。
10、void setErr(PrintStream err)
重新分配“标准”错误输出流。