zoukankan      html  css  js  c++  java
  • 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);
    }
  • 相关阅读:
    Blackey win10 + python3.6 + VSCode + tensorflow-gpu + keras + cuda8 + cuDN6N环境配置(转载)
    PyTorch在64位Windows下的Conda包(转载)
    经典的机器学习方面源代码库(非常全,数据挖掘,计算机视觉,模式识别,信息检索相关领域都适用的了)(转载)
    计算机视觉牛人博客和代码汇总(全)(转载)
    计算机视觉开源代码集合(转载)
    中国计算机学会推荐国际学术会议和期刊目录
    C++11 并发指南三(Lock 详解)(转载)
    C++11并发学习之三:线程同步(转载)
    MVC架构模式(转载)
    WPF中动态添加xaml资源文件
  • 原文地址:https://www.cnblogs.com/LuckyGJX/p/9069897.html
Copyright © 2011-2022 走看看