java中常用的API-System

本文介绍了Java中的System类,包括正常退出程序的System.exit()方法,异常退出程序的处理,以及如何使用currentTimeMillis测量代码执行时间。同时详细讲解了System.arraycopy()方法在数组操作中的应用,如初始化、切片和元素替换。
摘要由CSDN通过智能技术生成

System是一个常见的工具类,提供了一些与系统相关的方法

exit

正常退出程序:程序执行完毕并退出

public class Main {  
    public static void main(String[] args) {  
        // 程序逻辑...  
        System.out.println("程序执行完毕,准备退出。");  
        System.exit(0);  
    }  
}

异常退出程序:程序遇到无法处理的错误和异常时使用

public class Main {  
    public static void main(String[] args) {  
        try {  
            // 程序逻辑,可能抛出异常...  
        } catch (Exception e) {  
            System.err.println("发生错误:" + e.getMessage());  
            System.exit(1); // 使用非零状态码表示异常退出  
        }  
    }  
}

currentTimeMillis

测试代码的执行时间

long startTime = System.currentTimeMillis();  
  
// 执行一些代码...  
  
long endTime = System.currentTimeMillis();  
long elapsedTime = endTime - startTime; // 耗时,单位:毫秒  
System.out.println("代码执行耗时:" + elapsedTime + " 毫秒");

当测试需要决定两段功能相同的代码时可与通过currentTimeMillis方法来测试出来哪种方法执行时间段。

currentTimeMillis方法获得的时间是时间原点到现在一共多少毫秒,所以方法最终出来的单位是毫秒。(时间原点指的是c语言诞生的日子1970.1.1)

因为currentTimeMillis方法获得时间的唯一行,它还可以应用于唯一标识

arraycopy

System.arraycopy() 是 Java 中的一个静态方法,用于将一个源数组的一部分复制到目标数组。它在许多系统级或应用级任务中都非常有用,因为它提供了数组复制的高效方式,而无需手动编写循环来进行复制。

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
  • src:源数组,即从中复制数据的数组。
  • srcPos:源数组中的起始位置,从此位置开始复制。
  • dest:目标数组,即将数据复制到的数组。
  • destPos:目标数组中的起始位置,从此位置开始粘贴数据。
  • length:要复制的数组元素的数量。

数组初始化

在创建数组并初始化其一部分值时,System.arraycopy() 可以避免手动循环赋值。

int[] srcArray = {1, 2, 3, 4, 5};  
int[] destArray = new int[5];  
System.arraycopy(srcArray, 0, destArray, 0, 3); // 复制前三个元素  
// 此时 destArray 为 {1, 2, 3, 0, 0}

数组切片

如果你想创建一个原始数组的子集(即切片),可以使用 System.arraycopy()

int[] originalArray = {1, 2, 3, 4, 5, 6, 7, 8, 9};  
int[] slicedArray = new int[5];  
System.arraycopy(originalArray, 2, slicedArray, 0, 5); // 从索引2开始复制5个元素  
// 此时 slicedArray 为 {3, 4, 5, 6, 7}

数组元素替换

如果你想替换数组中的一部分元素,可以先复制旧元素到新位置,然后将新元素复制到原位置。

int[] array = {1, 2, 3, 4, 5};  
int[] newElements = {6, 7, 8};  
System.arraycopy(array, 3, array, 0, array.length - 3); // 将原数组中的后两个元素移到前面  
// 此时 array 为 {4, 5, 4, 5, 0}  
System.arraycopy(newElements, 0, array, 2, newElements.length); // 在新位置插入新元素  
// 此时 array 为 {4, 5, 6, 7, 8}

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我叫WJP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值