System类以及BigInteger和BigDecimal类

举报
周小末天天开心 发表于 2022/12/31 17:13:47 2022/12/31
【摘要】 System类System类常见方法(1)exit 退出当前程序(2)arraycopy 复制数组元素,比较适合底层调用,一般使用Arrays.copyOf完成复制数组int[] src = {1, 2, 3};int[] dest = new int[3];System.arraycopy(src,0,dest.0,3);(3)currentTimeMillens 返回当前时间距离的毫秒数...

System类

System类常见方法

(1)exit 退出当前程序

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

int[] src = {1, 2, 3};
int[] dest = new int[3];
System.arraycopy(src,0,dest.0,3);

(3)currentTimeMillens 返回当前时间距离的毫秒数

(4)gc 运行垃圾回收机制

案例

import java.util.Arrays;
public class System_ {
    public static void main(String[] args) {
        //exit 退出当前程序
        // System.out.println("ok1");

        // //1. exit(0) 表示程序退出
        // //2. 0 表示一个状态 , 正常的状态
        // System.exit(0);//
        // System.out.println("ok2");
        //arraycopy :复制数组元素,比较适合底层调用,
        // 一般使用 Arrays.copyOf 完成复制数组
        int[] src={1,2,3};
        int[] dest = new int[3];// dest 当前是 {0,0,0}

        //1. 主要是搞清楚这五个参数的含义
        //2. // 源数组
        // * @param src the source array. // srcPos: 从源数组的哪个索引位置开始拷贝
        // * @param srcPos starting position in the source array. // dest : 目标数组,即把源数组的数据拷贝到哪个数组
        // * @param dest the destination array. // destPos: 把源数组的数据拷贝到 目标数组的哪个索引
        // * @param destPos starting position in the destination data. // length: 从源数组拷贝多少个数据到目标数组
        // * @param length the number of array elements to be copied. System.arraycopy(src, 0, dest, 0, src.length);
        // int[] src={1,2,3};
        System.out.println("dest=" + Arrays.toString(dest));//[1, 2, 3]
        //currentTimeMillens:返回当前时间距离 1970-1-1 的毫秒数

        System.out.println(System.currentTimeMillis());
    }
}

BigInteger和BigDecimal类

介绍

(1)BigInteger适合保存比较大的整形

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

常见方法

(1)add 加

(2)subtract 减

(3)multiply 乘

(4)divide 除

BigInteger案例

import java.math.BigInteger;
public class BigInteger_ {
    public static void main(String[] args) {
        //当我们编程中,需要处理很大的整数,long 不够用
        //可以使用 BigInteger 的类来搞定
        // long l = 23788888899999999999999999999l;
        // System.out.println("l=" + l);
        BigInteger bigInteger = new BigInteger("23788888899999999999999999999");
        BigInteger bigInteger2 = newBigInteger("10099999999999999999999999999999999999999999999999999999999999999999999999999999999");System.out.println(bigInteger);

        //1. 在对 BigInteger 进行加减乘除的时候,需要使用对应的方法,不能直接进行 + - * /
        //2. 可以创建一个 要操作的 BigInteger 然后进行相应操作
        BigInteger add = bigInteger.add(bigInteger2);
        System.out.println(add);//
        BigInteger subtract = bigInteger.subtract(bigInteger2);
        System.out.println(subtract);//减
        BigInteger multiply = bigInteger.multiply(bigInteger2);
        System.out.println(multiply);//乘
        BigInteger divide = bigInteger.divide(bigInteger2);
        System.out.println(divide);//除
    }
}

BigDecimal案例

import java.math.BigDecimal;
public class BigDecimal_ {
    public static void main(String[] args) {
        //当我们需要保存一个精度很高的数时,double 不够用
        //可以是 BigDecimal
        // double d = 1999.11111111111999999999999977788d;
        // System.out.println(d);
        BigDecimal bigDecimal = new BigDecimal("1999.11");
        BigDecimal bigDecimal2 = new BigDecimal("3");
        System.out.println(bigDecimal);

        //1. 如果对 BigDecimal 进行运算,比如加减乘除,需要使用对应的方法
        //2. 创建一个需要操作的 BigDecimal 然后调用相应的方法即可
        System.out.println(bigDecimal.add(bigDecimal2));
        System.out.println(bigDecimal.subtract(bigDecimal2));
        System.out.println(bigDecimal.multiply(bigDecimal2));
        //System.out.println(bigDecimal.divide(bigDecimal2));//可能抛出异常 ArithmeticException
        //在调用 divide 方法时,指定精度即可. BigDecimal.ROUND_CEILING
        //如果有无限循环小数,就会保留 分子 的精度
        System.out.println(bigDecimal.divide(bigDecimal2, BigDecimal.ROUND_CEILING));
    }
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。