一、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时间(格林威治时间)197011000秒所差的毫秒数。

  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)  

    重新分配“标准”错误输出流。 

     

 

posted on 2021-03-14 20:35  格物致知_Tony  阅读(303)  评论(0编辑  收藏  举报