2021-07-07

1,BigInteger与BigDecimal:

这两个类可以进行任意长度、任意精度的数值运算;

BigInteger——大整数,数值运算;

BigDecimal——大浮点数,数值运算;

数值运算用的是它们自己的方法,例如:add()和mutiply()。

基本类型数值转换为大数值:BigInteger.valueOf(基本类型数值);

代码:

public static void main(String[] args) {
        int num1 = 20;
        BigInteger bigInteger1 = BigInteger.valueOf(num1);
        BigInteger bigInteger2 = BigInteger.valueOf(30);
        //相加:
        BigInteger bigInteger3 = bigInteger1.add(bigInteger2);
        System.out.println("bigInteger3 = " + bigInteger3);
        //-------------------
        float num2 = 35.7f;
        BigDecimal bigDecimal1 = BigDecimal.valueOf(num2);
        BigDecimal bigDecimal2 = BigDecimal.valueOf(20.4f);
        //相减:
        BigDecimal bigDecimal3 = bigDecimal1.subtract(bigDecimal2);
        System.out.println("bigDecimal3 = " + bigDecimal3);

    }

结果:

bigInteger3 = 50
bigDecimal3 = 15.300001144409177

2,float和double的区别:

2.1:double是双精度,float是单精度;

2.2:默认的小数都是double类型,想写成float需要在后边跟一个f;例如:float a=1.6f;

3,数组-新建:

String[] arr4 = new String[10];
//此刻会创建一个包含10个字符串的数组,此时每个字符串的初始值为null.

4,数组拷贝:

//数组拷贝:
        int[] arr5 = new int[]{1, 3, 5, 2, 9, 6, 7};
        int[] arr6 = {3, 6, 8, 0, 2, 1, 4, 8}; //简写形式
        int[] arr5Copy = Arrays.copyOf(arr5, arr5.length);
        System.out.println("arr5Copy = " + Arrays.toString(arr5Copy));
        int[] arr5CopyRange = Arrays.copyOfRange(arr5, 1, 3);
        System.out.println("arr5CopyRange = " + Arrays.toString(arr5CopyRange));

//控制台输出:
arr5Copy = [1, 3, 5, 2, 9, 6, 7]
arr5CopyRange = [3, 5]

数组拷贝中,将一个数组变量拷贝给另一个数组变量,此时两个变量指向的是内存中的同一个数组;

Arrays.copyOf()这个方法通常是用来加长原来数组的长度,这样用的;例如:
arr5 = Arrays.copyOf(arr5, arr5.length * 2);
System.out.println("加长为原来2倍之后的arr5 = " + Arrays.toString(arr5));

控制台: 

加长为原来2倍之后的arr5 = [1, 3, 5, 2, 9, 6, 7, 0, 0, 0, 0, 0, 0, 0]

Arrays.copyOf():如果拓长之后的数组的长度大于原来的数组,则后边的元素为默认初始值,例如0、false、null等;如果拓长之后的数组的长度小于原来的数组,则只拷贝原来数组最前边的元素。

5,数组排序:

通常使用Arrays.sort()方法,该方法的原理是使用了优化的快速排序算法

6,Math.random()方法:

该方法将返回一个0~1之间(含0不含1)的一个随机浮点数

用n乘以这个浮点数,就可以得到一个0~(n-1)之间的一个随机数

        double random = Math.random();
        System.out.println("随机数random,0~1之间的一个浮点数 = " + random);
        int randomInt1=(int)(Math.random() * 10);
        int randomInt2=(int)(Math.random() * 100);
        System.out.println("随机数randomInt1,0~10之间的一个数 = " + randomInt1);
        System.out.println("随机数randomInt2,0~100之间的一个数 = " + randomInt2);

控制台:

随机数random,0~1之间的一个浮点数 = 0.3861905482236927
随机数randomInt1,0~10之间的一个数 = 1
随机数randomInt2,0~100之间的一个数 = 50

7, Arrays.binarySearch(int[] a, int  fromIndex, int  toIndex, int  key),二分查找,还可以指定数组的某一块区间;

        int index = Arrays.binarySearch(arr5, 3);
        System.out.println("数组arr5中,二分查找,元素3的下标为 = " + index);
        int index2 = Arrays.binarySearch(arr5, 1, 6, 3);
        System.out.println("数组arr5的部分区间内,二分查找,元素3的下标为 = " + index2);
数组arr5中,二分查找,元素3的下标为 = 3
数组arr5的部分区间内,二分查找,元素3的下标为 = 3

8,Arrays.equals(int[] a, int[] a2)方法,比较两个数组是否相等;

如果两个数组大小长度相等,并且下标对应的元素也都对应相等,则返回true.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值