Java中的System类、BigInteger类和BigDecimal类详解

 更新时间:2023年09月21日 09:01:01   作者:Neo丶  
这篇文章主要介绍了Java中的System类、BigInteger类和BigDecimal类详解,arraycopy()方法,复制数组元素,比较适合底层调用,一般使用Arrays.copyOf()完成复制数组,需要的朋友可以参考下

System类常见方法

1)exit()方法,退出当前程序;

2)arraycopy()方法,复制数组元素,比较适合底层调用,一般使用Arrays.copyOf()完成复制数组;

3)currentTimeMillis()方法,返回当前时间距离1970-1-1的毫秒数

4)gc()方法,运行垃圾回收机制System.gc();

package com.pero.system_;
import java.util.Arrays;
/**
 * @author Pero
 * @version 1.0
 */
public class System_ {
    public static void main(String[] args) {
        //exit()方法,退出当前程序;
        System.out.println("程序1");
        //exit(0),表示程序正常退出
        //0表示一个正常的状态
        //System.exit(0);
        System.out.println("程序2");
        //2)arraycopy()方法,复制数组元素,比较适合底层调用,
        // 一般使用Arrays.copyOf()完成复制数组;
        int[] src = {1,2,3};
        int[] dest = new int[3];  //dest当前是{0,0,0}
        System.arraycopy(src,0,dest,0,3);
        // src – the source array.   源数组(被拷贝的数组)
        // srcPos – starting position in the source array.  从源数组的指定索引位置开始拷贝(复制)信息
        // dest – the destination array.   目标数组(将源数组数据拷贝到该数组中)
        // destPos – starting position in the destination data.   从目标数组的指定索引位置开始拷贝(粘贴)信息
        // length – the number of array elements to be copied.  从源数组拷贝数据的个数(长度)
        System.out.println("dest="+ Arrays.toString(dest));
        //3)currentTimeMillis()方法,返回当前时间距离1970-1-1的毫秒数
        System.out.println(System.currentTimeMillis());
    }
}

BigInteger类和BigDecimal类应用场景

1)BigInteger适合保存比较大的整型;

2)BigDecimal适合保存精度更高的浮点型(小数)。

BigInteger常用方法

package com.pero.bignum_;
import java.math.BigInteger;
/**
 * @author Pero
 * @version 1.0
 */
public class BigInteger_ {
    public static void main(String[] args) {
        long longNumber = 1000000000000000001l;
        System.out.println(longNumber);
        //要以字符串形式传进BigInteger的对象中
        BigInteger bigInteger = new BigInteger("99999999999999999999999");
        System.out.println(bigInteger);
        //1.在对BigInteger进行加减乘除的时候,必须使用对应的方法,不能直接使用运算符(+、-、*、/)
        //加法add()
        BigInteger bigInteger1 = BigInteger.valueOf(longNumber);
        System.out.println(bigInteger1);
        BigInteger bigInteger2 = bigInteger.add(bigInteger1);
        System.out.println(bigInteger2);
        //减法subtract()
        BigInteger subtract = bigInteger2.subtract(bigInteger);
        System.out.println(subtract);
        //乘法multiply()
        BigInteger multiply = bigInteger1.multiply(bigInteger2);
        System.out.println(multiply);
        //除法divide()
        BigInteger divide = multiply.divide(bigInteger2);
        System.out.println(divide);
    }
}

BigDecimal常用方法

package com.pero.bignum_;
import java.math.BigDecimal;
/**
 * @author Pero
 * @version 1.0
 */
public class BigDecimal_ {
    public static void main(String[] args) {
        double d = 19999999.199999999999999d;
        System.out.println(d);
        BigDecimal bigDecimal = new BigDecimal("19999999.19999999999999999999");
        System.out.println(bigDecimal);
        //1.如果对BigDecimal进行运算,不能够直接使用运算符(+、-、*、/)进行运算,
        // 需要使用对应方法
        //加法add()
        BigDecimal bigDecimal1 = new BigDecimal("0.00000000000000000001");
        System.out.println(bigDecimal.add(bigDecimal1));
        //减法subtract()
        BigDecimal bigDecimal2 = new BigDecimal("19999999.09999999999999999999");
        System.out.println(bigDecimal.subtract(bigDecimal2));
        //乘法multiply()
        System.out.println(bigDecimal.multiply(bigDecimal2));
        //除法divide()
        //System.out.println(bigDecimal.divide(bigDecimal2));
        //注意:可能存在无法除尽的情况,抛出ArithmeticException异常
        //在调用divide()方法时,指定精度即可,BigDecimal.ROUND_CEILING
        //如果有无限循环小数,就会保留分子的精度
        System.out.println(bigDecimal.divide(bigDecimal2,BigDecimal.ROUND_CEILING));
    }
}

到此这篇关于Java中的System类、BigInteger类和BigDecimal类详解的文章就介绍到这了,更多相关System类、BigInteger类和BigDecimal类详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java线程池高频面试题总结

    Java线程池高频面试题总结

    在进程和线程的相关面试题中还有一部分是关于多线程和线程池的,也是在这一部分中比较常考察的内容。本篇文章就带你了解一下,希望能给你带来帮助
    2021-08-08
  • 详解Spring mvc的web.xml配置说明

    详解Spring mvc的web.xml配置说明

    本篇文章主要介绍了Spring mvc的web.xml配置说明,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Java 覆盖equals时总要覆盖hashcode

    Java 覆盖equals时总要覆盖hashcode

    这篇文章主要介绍了Java 覆盖equals时总要覆盖hashcode的相关资料,这里附有实例代码,具有参考价值,需要的朋友可以参考下
    2016-12-12
  • Java中临时文件目录的使用

    Java中临时文件目录的使用

    :Java提供了系统属性java.io.tmpdir来获取默认临时文件目录,适用于不同操作系统,使用Files.createTempFile方法创建临时文件,并在不需要时应及时删除,下面就来介绍一下
    2024-10-10
  • Java线程协调运行操作实例详解

    Java线程协调运行操作实例详解

    这篇文章主要介绍了Java线程协调运行操作,结合具体实例形式详细分析了Java线程协调运行原理、实现方法及相关操作注意事项,需要的朋友可以参考下
    2019-09-09
  • MyBatis-Plus实现对查询结果进行分页的基本步骤

    MyBatis-Plus实现对查询结果进行分页的基本步骤

    MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生,MyBatis-Plus 支持多种数据库的分页查询,其分页功能是通过 Page 类实现的,本文介绍了使用 MyBatis-Plus 实现分页查询的基本步骤,需要的朋友可以参考下
    2024-08-08
  • 解决springboot报错找不到自动注入的service问题

    解决springboot报错找不到自动注入的service问题

    这篇文章主要介绍了解决springboot报错找不到自动注入的service问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • scala+redis实现分布式锁的示例代码

    scala+redis实现分布式锁的示例代码

    这篇文章主要介绍了scala+redis实现分布式锁的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Java中的 VO,BO,DO 对象命名问题小结

    Java中的 VO,BO,DO 对象命名问题小结

    本文讲解VO,BO,DO 的作用以及如何使用,分析了如何消除三者之间重复的代码,同样结合现实生活中领导配秘书来类比讲解,对Java  VO  对象命名相关知识感兴趣的朋友一起看看吧
    2024-01-01
  • MyBatisPlus PaginationInterceptor分页插件的使用详解

    MyBatisPlus PaginationInterceptor分页插件的使用详解

    这篇文章主要介绍了MyBatisPlus PaginationInterceptor分页插件的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03

最新评论