Java常用类之System类的使用指南

 更新时间:2022年07月20日 10:33:11   作者:世界尽头与你  
System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。本文将通过示例为大家详细讲讲System类的使用,需要的可以参考一下

1.System类

System系统类,主要用于获取系统的属性数据和其他操作,因其构造方法是私有的并且类中的成员方法都是静态的,所以在使用的时候不需要创建对象,可直接调用。

该类实现了一些关于系统功能的方法如下:

import java.util.Arrays;

/**
 * System类演示
 */
public class SystemTest {
    public static void main(String[] args) {
        int[] src = {1, 2, 3};
        int[] dest = new int[3];
        /**
         * 参数1:源数组
         * 参数2:从源数组的那个位置开始拷贝
         * 参数3:目标数组
         * 参数4:把源数组的数据拷贝到目标数组的那个索引
         * 参数5:从源数组拷贝多少的数到目标数组
         */
        System.arraycopy(src, 0, dest, 0, 3);
        System.out.println(Arrays.toString(dest));
        // 返回当前时间距离1970年1月1日的毫秒数
        System.out.println(System.currentTimeMillis());
        // 调用垃圾回收机制
        System.gc();
        // 退出当前程序
        // 0:程序正常退出
        System.exit(0);
    }
}

下面为大家补充一些System类的常用方法

1. arraycopy(…)方法

概述

arraycopy(…)方法将指定原数组中的数据从指定位置复制到目标数组的指定位置。

语法

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

src – 原数组。

srcPos – 在原数组中开始复制的位置。

dest – 目标数组。

destPos – 在目标数组中开始粘贴的位置。

length – 复制的长度。

举例

package com.ibelifly.commonclass.system;

public class Test1 {
    public static void main(String[] args) {
        int[] arr={23,45,20,67,57,34,98,95};
        int[] dest=new int[8];
        System.arraycopy(arr,4,dest,4,4);
        for (int x:dest) {
            System.out.print(x+" ");
        }
    }
}

2. currentTimeMillis()方法

概述

currentTimeMillis()方法返回当前时间(以毫秒为单位)。

语法

static long currentTimeMillis()

举例

package com.ibelifly.commonclass.system;

public class Test2 {
    public static void main(String[] args) {
        System.out.println(System.currentTimeMillis()); //打印现在的时间
        long start=System.currentTimeMillis(); //该方法可用来计时
        for (int i = -99999999; i < 99999999; i++) {
            for (int j = -99999999; j < 99999999; j++) {
                int result=i+j;
            }
        }
        long end=System.currentTimeMillis();
        System.out.println("用时:"+(end-start));
    }
}

3. gc()方法

概述

gc()方法用来运行垃圾回收器。(至于是否回收垃圾,有可能执行,有可能不执行,是否执行取决于JVM)

语法

static void gc();

举例

学生类:

package com.ibelifly.commonclass.system;

public class Student {
    private String name;
    private int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    protected void finalize() throws Throwable {
        System.out.println("回收了"+name+" "+age);
    }
}

测试类:

package com.ibelifly.commonclass.system;

public class Test3 {
    public static void main(String[] args) {
        new Student("小明",20);
        new Student("小红",28);
        new Student("小刚",22);
        System.gc();
    }
}

4. exit(int status)方法

概述

exit(int status)方法用于终止当前运行的Java虚拟机。如果参数是0,表示正常退出JVM;如果参数非0,表示异常退出JVM。

语法

static void exit(int status);

举例

package com.ibelifly.commonclass.system;

​​​​​​​public class Test4 {
    public static void main(String[] args) {
        System.out.println("程序开始了");
        System.exit(0); //因为此处已经终止当前运行的Java虚拟机,故不会执行之后的代码
        System.out.println("程序结束了");
    }
}

2.BigInteger

该类实现了大整数的运算:

// BigInteger
BigInteger bigInteger = new BigInteger("11111111111111111111111");
BigInteger bigInteger1 = new BigInteger("12345678910");
// +
BigInteger addRes = bigInteger.add(bigInteger1);
System.out.println(addRes);
// -
BigInteger subRes = bigInteger.subtract(bigInteger1);
System.out.println(subRes);
// *
BigInteger mulRes = bigInteger.multiply(bigInteger1);
System.out.println(mulRes);
// /
BigInteger divRes = bigInteger.divide(bigInteger1);
System.out.println(divRes);

3.BigDecimal

该类实现了超高精度的浮点数运算:

// BigDecimal
BigDecimal bigDecimal = new BigDecimal("1.1111111111111111111999999999999");
BigDecimal bigDecimal1 = new BigDecimal("1.234567");
System.out.println(bigDecimal);
// +
BigDecimal daddRes = bigDecimal.add(bigDecimal1);
System.out.println(daddRes);
// -
BigDecimal dsubRes = bigDecimal.subtract(bigDecimal1);
System.out.println(dsubRes);
// *
BigDecimal dmulRes = bigDecimal.multiply(bigDecimal1);
System.out.println(dmulRes);
// /,注意:如果不指定精度,结果是死循环小数,会抛出一个异常
BigDecimal ddivRes = bigDecimal.divide(bigDecimal1,BigDecimal.ROUND_CEILING);
System.out.println(ddivRes);

到此这篇关于Java常用类之System类的使用指南的文章就介绍到这了,更多相关Java System类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot注册web组件的实现方式

    SpringBoot注册web组件的实现方式

    Servlet是Java Web应用程序的基础,它提供了处理客户端请求的机制,Servlet三大组件是指Servlet、Filter和Listener,它们是Java Web应用程序的核心组件,本文将给大家介绍一下SpringBoot注册web组件的实现方式,需要的朋友可以参考下
    2023-10-10
  • mybatis中的mapper.xml使用循环语句

    mybatis中的mapper.xml使用循环语句

    这篇文章主要介绍了mybatis中的mapper.xml使用循环语句,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Lombok 的@StandardException注解解析

    Lombok 的@StandardException注解解析

    @StandardException 是一个实验性的注解,添加到 Project Lombok 的 v__1.18.22 版本中,在本教程中,我们将使用 Lombok 的 @StandardException 注解自动生成异常类型类的构造函数,需要的朋友可以参考下
    2023-05-05
  • MyBatis 如何使项目兼容多种数据库的解决方案

    MyBatis 如何使项目兼容多种数据库的解决方案

    要想做兼容多种数据库,那毫无疑问,我们首先得明确我们要兼容哪些数据库,他们的数据库产品名称是什么,本次我们讲解了一套使项目兼容多种数据库的方案,对MyBatis项目兼容多种数据库操作方法感兴趣的朋友一起看看吧
    2024-05-05
  • Spring Boot指标监控及日志管理示例详解

    Spring Boot指标监控及日志管理示例详解

    Spring Boot Actuator可以帮助程序员监控和管理SpringBoot应用,比如健康检查、内存使用情况统计、线程使用情况统计等,这篇文章主要介绍了Spring Boot指标监控及日志管理,需要的朋友可以参考下
    2023-11-11
  • 使用@value注解取不到application.xml配置文件中的值问题

    使用@value注解取不到application.xml配置文件中的值问题

    这篇文章主要介绍了使用@value注解取不到application.xml配置文件中的值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java在Excel中添加水印的实现(单一水印、平铺水印)

    Java在Excel中添加水印的实现(单一水印、平铺水印)

    这篇文章主要介绍了Java在Excel中添加水印的实现(单一水印、平铺水印),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Java 垃圾回收机制详解及实例代码

    Java 垃圾回收机制详解及实例代码

    这篇文章主要介绍了 Java 垃圾回收机制详解及实例代码的相关资料,需要的朋友可以参考下
    2017-02-02
  • Java函数式编程(十二):监控文件修改

    Java函数式编程(十二):监控文件修改

    这篇文章主要介绍了Java函数式编程(十二):监控文件修改,本文是系列文章的第12篇,其它文章请参阅本文底部的相关文章,需要的朋友可以参考下
    2014-09-09
  • Spring Boot超详细分析启动流程

    Spring Boot超详细分析启动流程

    SpringBoot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手,这篇文章主要给大家介绍了关于Spring Boot启动流程知识点的相关资料,需要的朋友可以参考下
    2022-07-07

最新评论