Java中System类学习笔记

本文详细介绍了Java中的System类,包括其不可实例化的特性、提供的静态方法及用途,如数组复制、获取当前时间、读取系统属性、触发垃圾回收和终止程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

System类


System系统类,主要用于获取系统的属性数据和其他操作,构造方法是私有的。

System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。

由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员方法和成员变量都是static(静态)的,所以也可以很方便的调用他。

System中包含三个成员变量,分别代表标准输入流(键盘输入)、标准输出流(显示器)和标准错误输出流(显示器),原型如下所示。

public final static InputStream in;		//标准输入流
public final static PrintStream out;	//标准输出流
public final static PrintStream err;	//标准错误流

arraycopy()函数

该函数的功能是复制一个数组的内容到另一个数组,该函数的原型如下所示。

public static native void arraycopy(Object src,  int  srcPos,
                                        Object dest, int destPos,
                                        int length);

接下来对参数列表进行分析

参数含义
src被复制的数组
srcPos复制的起始位置
dest目标数组
destPos目标数组起始复制位置
length被复制的数组长度

currentTimeMillis()函数

该函数功能是返回以毫秒为单位的当前时间

注意,当返回值的时间单位是毫秒时,值的粒度取决于底层操作系统,并且粒度可能更大。例如,许多操作系统以几十毫秒为单位测量时间。

函数原型如下所示

public static native long currentTimeMillis();

getProperty()函数

该函数可以获取指定键指示的系统属性,函数原型如下所示。

public static String getProperty(String key)

常用指定键如下所示

os.arch操作系统的架构
os.version操作系统的版本
file.separator文件分隔符(在 UNIX 系统中是“/”)
path.separator路径分隔符(在 UNIX 系统中是“:”)
line.separator行分隔符(在 UNIX 系统中是“/n”)
user.name用户的账户名称
user.home用户的主目录
user.dir用户的当前工作目录

gc()函数

该函数功能是运行垃圾回收器

调用 gc 方法暗示着 Java 虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存。当控制权从方法调用中返回时,虚拟机已经尽最大努力从所有丢弃的对象中回收了空间。

调用 System.gc() 实际上等效于调用: Runtime.getRuntime().gc()

函数原型如下所示

public static void gc() {
        Runtime.getRuntime().gc();
    }

exit()函数

该函数功能是终止当前正在运行的 Java 虚拟机

参数用作状态码;根据惯例,非 0 的状态码表示异常终止。

该方法调用 Runtime 类中的 exit 方法。该方法永远不会正常返回。

调用 System.exit(n) 实际上等效于调用: Runtime.getRuntime().exit(n)

函数原型如下所示

public static void exit(int status) {
        Runtime.getRuntime().exit(status);
    }

测试代码

下列代码为简单使用上述函数的代码

public static void main(String[] args) {
        // arraycopy: 数组的复制
        // src: 源数组
        // srcPos:  从哪个位置开始复制
        // dest: 目标数组
        // destPos: 目标数组位置
        // length:  复制的长度
        int[] arr = {20,18,15,8,35,26,45};
        int[] dest = new int[8];
        System.arraycopy(arr,0,dest,1,arr.length);
        for (int i : dest) {
            System.out.println(i);
        }
        System.gc();
        System.exit(0);
        System.out.println(System.currentTimeMillis());
        System.out.println(System.getProperty("os.version"));
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值