Java基础20-System、Math、Arrays、BigDecimal/Integer

 

一、Arrays类

此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。

1.常用方法

    public static void main(String[] args) {
     int[] arr= {1,5,6,8,3,5,2,4,9};
     //将int数组转化为字符串
     String ret=Arrays.toString(arr);
     System.out.println(ret);
     //排序,第二到第六个数进行排序
     Arrays.sort(arr,2,6);
     System.out.println(Arrays.toString(arr));
     //所有书进行排序,从小到大
     Arrays.sort(arr);
     System.out.println(Arrays.toString(arr));
     //在指定数组中,查找给定元素值出现的位置。若没有查询到,返回位置为-1。要求该数组必须是个有序的数组。
     System.out.println(Arrays.binarySearch(arr,6));
    }

 

二、System类

System中代表程序所在系统,提供了对应的一些系统属性信息,和系统操作。

1.常用方法

 

public static void main(String[] args) {
//获取当前系统时间与1970年01月01日00:00点之间的毫秒差值
    long time=System.currentTimeMillis();
    //可以用来测试程序运行的时长
    System.out.println(time);
    //用来结束正在运行的Java程序。参数传入一个数字即可。通常传入0记为正常状态,其他为异常状态
    System.exit(0);
    System.out.println("ending");
}

public static void main(String[] args) {
    //System类中数组拷贝方法arrayCopy
    //该方法没有方法体,该方法使用了native修饰符(本地方法),底层使用了c/c++语言
    int[] src={1,2,3,65,6,9};
    //System.arraycopy(src, srcPos, dest, destPos, length); 
//    src - 源数组。
//    srcPos - 源数组中的起始位置。
//    dest - 目标数组。
//    destPos - 目标数据中的起始位置。
//    length - 要复制的数组元素的数量。 
    //从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
}

 

二、Math类

Math包含了用于执行基本数学运算的方法,如初等质数、对数、平方根和三角函数等,都是静态方法。

1.常用方法

//abs方法,结果都为正数
double d1 = Math.abs(-5); // d1的值为5
double d2 = Math.abs(5); // d2的值为5//ceil方法,结果为比参数值大的最小整数的double值
double d1 = Math.ceil(3.3); //d1的值为 4.0
double d2 = Math.ceil(-3.3); //d2的值为 -3.0
double d3 = Math.ceil(5.1); // d3的值为 6.0//floor方法,结果为比参数值小的最大整数的double值
double d1 = Math.floor(3.3); //d1的值为3.0
double d2 = Math.floor(-3.3); //d2的值为-4.0
double d3 = Math.floor(5.1); //d3的值为 5.0//max方法,返回两个参数值中较大的值
double d1 = Math.max(3.3, 5.5); //d1的值为5.5
double d2 = Math.max(-3.3, -5.5); //d2的值为-3.3
//min方法,返回两个参数值中较小的值
double d1 = Math.min(3.3, 5.5); //d1的值为3.3
double d2 = Math.max(-3.3, -5.5); //d2的值为-5.5
//pow方法,返回第一个参数的第二个参数次幂的值
double d1 = Math.pow(2.0, 3.0); //d1的值为 8.0
double d2 = Math.pow(3.0, 3.0); //d2的值为27.0
//round方法,返回参数值四舍五入的结果
double d1 = Math.round(5.5); //d1的值为6.0
double d2 = Math.round(5.4); //d2的值为5.0
//random方法,产生一个大于等于0.0且小于1.0的double小数
double d1 = Math.random();

四、BigDecimal/BigInteger

float和double都不能表示精确的小数,此时使用Bigdecimal,用于处理金钱和精度要求高的数据

 Bigdecimal

可以实现浮点数据的高精度运算

 

 但这样加起来的数据也并不准确,那怎么办呢?

原来这个地方需要用到字符串类型才可以保证数据的准确性

BigInteger

 javalong型为最大整数类型,对于超过long型的数据如何去表示呢.Java的世界中,超过long型的整数已经不能被称为整数了,它们被封装成BigInteger对象.BigInteger类中,实现四则运算都是方法来实现,并不是采用运算符.

public static void main(String[] args) {
        //大数据封装为BigInteger对象
          BigInteger big1 = new BigInteger("12345678909876543210");
          BigInteger big2 = new BigInteger("98765432101234567890");
          //add实现加法运算
          BigInteger bigAdd = big1.add(big2);
          //subtract实现减法运算
          BigInteger bigSub = big1.subtract(big2);
          //multiply实现乘法运算
          BigInteger bigMul = big1.multiply(big2);
          //divide实现除法运算
          BigInteger bigDiv = big2.divide(big1);
}

 

posted @ 2018-05-21 23:06  LuckyGJX  阅读(169)  评论(0编辑  收藏  举报