Java中常用API总结(2)—— System类(含实例解读)

简介: System类所在包为java.lang包,因此在使用的时候不需要进行导包;并且System类被final修饰了,因此该类是不能被继承的

一、前言


本文将讲述System类以及常见类的用法


二、概述


1.API帮助文档


System类所在包为java.lang包,因此在使用的时候不需要进行导包;并且System类被final修饰了,因此该类是不能被继承的


6f022495a50842b9a8441a00c8450ab9.png


2.概述


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


3.使用方式


在API文档中没有体现可用的构造方法,因此我们就不能直接通过new关键字去创建System类的对象。同时我们发现System类中的方法都是静态的,因此在使用的时候我们可以直接通过类名去调用


f88a731ed1d8418ca78874abcf608056.png


三、常用方法


1.获取当前时间所对应的毫秒值


1️⃣格式


public static long currentTimeMillis()


2️⃣实例


package RunTimeAPI;
public class Test2 {
    public static void main(String[] args) {
        long l = System.currentTimeMillis();
        System.out.println("当前时间毫秒值是:"+l);
    }
}

3e0fb698be1f47e69b1d9f1c35a58e11.png


当前时间毫秒值是:1672934256994


3️⃣具体应用


一般这种会使用在测试代码的效率哪个更好方面:

在开始和结尾时都获取一遍对应毫秒值,再用后者减去前者得到差值就是运行该程序所用时间


package RunTimeAPI;
public class Test3 {
    public static void main(String[] args) {
        long start = System.currentTimeMillis();
        int sum = 0;
        for (int i = 1; i <= 100000; i++) {
            sum +=i;
        }
    //获取程序运行的总时间
        long end = System.currentTimeMillis();
        System.out.print("运行该程序需要:");
        System.out.print(end - start);
        System.out.println("毫秒");
    }
}


运行该程序需要:1毫秒


d1dde531e78c47cd9ba569ab9c6110d9.png


2.终止当前正在运行的Java虚拟机


1️⃣格式


public static void exit(int status)


2️⃣实例


public class TestExit {
    public static void main(String[] args) {
        System.out.println("----------程序开始执行----------");
        // 终止JVM
        System.exit(0);
        System.out.println("----------程序终止----------");
    }
}


----------程序开始执行----------


5d6443d7008946b49badb46a817dbc48.png


3.进行数值元素copy


1️⃣格式


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


2️⃣实例


public class TestCopyArr {
    public static void main(String[] args) {
        // 定义源数组
        int[] srcArray = {54 , 99 , 21347 , 6439 , 144 , 6 } ;
        // 定义目标数组
        int[] desArray = new int[10] ;
        // 进行数组元素的copy: 把srcArray数组中从0索引开始的3个元素,从desArray数组中的1索引开始复制过去
        System.arraycopy(srcArray , 0 , desArray , 3 , 4);
        // 遍历目标数组
        for(int x = 0 ; x < desArray.length ; x++) {
            if(x != desArray.length - 1) {
                System.out.print(desArray[x] + ", ");
            }
            else {
                System.out.println(desArray[x]);
            }
        }
    }
}


0, 0, 0, 54, 99, 21347, 6439, 0, 0, 0


4efa2526a5ea47bc82d6622089ba813c.png


3️⃣注意事项


在使用这个方法的时候我们可以选中 arraycopy 后 Ctrl+B 跟进查看一下源码


90a823daff5d4d0ea696c21620e3cf57.png


有以下几个注意点


🟡如果数据源数组和目的地数组都是基本数据类型,那么两者的类型必须保持一致,否则会报错


🟡在拷贝的时候需要考虑数组的长度,如果超出范围也会报错


🟡如果数据源数组和目的地数组都是引用数据类型,那么子类类型可以赋值给父类类型


四、结语


接下来会讲述有关于ReturnTime类的相关知识点

相关文章
|
3天前
|
Java
java中递归实例
java中递归实例
14 0
|
15天前
|
设计模式 Java API
Java 可扩展 API 设计:打造灵活的应用架构
【4月更文挑战第27天】设计可扩展的 API 是构建灵活、易于维护的应用程序架构的关键。Java 提供了丰富的工具和技术来实现这一目标,使开发者能够构建具有高度可扩展性的应用程序。
37 4
|
2天前
|
Java API
【JAVA进阶篇教学】第三篇:JDK8中Stream API使用
【JAVA进阶篇教学】第三篇:JDK8中Stream API使用
|
2天前
|
Java
代码实例演示Java字符串与输入流互转
代码实例演示Java字符串与输入流互转
|
3天前
|
网络协议 Dubbo Java
【网络编程】理解客户端和服务器并使用Java提供的api实现回显服务器
【网络编程】理解客户端和服务器并使用Java提供的api实现回显服务器
9 0
|
3天前
|
SQL Java 数据库连接
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
9 0
|
11天前
|
分布式计算 Java API
Java 8新特性之Lambda表达式与Stream API
【5月更文挑战第1天】本文将介绍Java 8中的两个重要特性:Lambda表达式和Stream API。Lambda表达式是一种新的函数式编程语法,可以简化代码并提高可读性。Stream API是一种用于处理集合的新工具,可以方便地进行数据操作和转换。通过结合Lambda表达式和Stream API,我们可以更加简洁高效地编写Java代码。
|
15天前
|
Java API 开发者
【专栏】Java 8的Stream API是处理集合数据的新方式,强调简洁和声明式编程
【4月更文挑战第27天】Java 8的Stream API是处理集合数据的新方式,强调简洁和声明式编程。它基于延迟执行和惰性求值,提供创建、中间操作(如filter、map)和终端操作(如forEach、collect)。示例展示了如何通过Stream排序、过滤、映射和聚合数据。
|
Java API
Java 8 Stream API详解
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/47038607 Java ...
982 0
|
1天前
|
安全 API 开发者
智能体-Agent能力升级!新增Assistant API & Tools API服务接口
ModelScope-Agent是一个交互式创作空间,它支持LLM(Language Model)的扩展能力,例如工具调用(function calling)和知识检索(knowledge retrieval)。它已经对相关接口进行了开源,以提供更原子化的应用LLM能力。用户可以通过Modelscope-Agent上的不同代理(agent),结合自定义的LLM配置和消息,调用这些能力。