美文网首页
Java中常用的类(类型包装类、System类、Math类、Ar

Java中常用的类(类型包装类、System类、Math类、Ar

作者: 丛鹏 | 来源:发表于2019-12-11 15:24 被阅读0次

    一、基本类型包装类

    在实际开发中,往往需要将数据转换成字符串类型进行存储,会根据需要转换成指定的基本数据类型,因此,Java将基本数据类型值封装成了对象,提供了更多的操作基本数值的功能,用于在基本数据类型和字符串之间进行转换。

    1、8 种基本类型对应的包装类

    基本数据类型 对应的包装类

     将字符串转换成基本数据类型:parseXXX(String s);其中XXX表示基本数据类型,s 参数为可以转换成基本类型的字符串,如果字符串无法转换成基本类型,将会发生数字转换的问题:NumberFormatException

    eg:System.out.println(Integer.parseInt("123") + 2);    //打印结果为125

    将基本类型转换成字符串有3中方式

    (1) 基本类型直接与“ ”相连接即可;eg:34 + “”

    (2) 调用 String 的 valueOf 方法:String.valueOf(34);

    (3) 调用包装类中的 toString 方法:Integer.toString(34);

    2、基本类型和对象转换

    基本类型转换成包装对象(以 int 类型转换integer 对象为例)

    Integer a = new Integer(2);    //构造一个新分配的Integer对象,表示指定的int值

    Integer b = new Integer("2");    //构造一个新分配的Integer对象,表示String参数所指向的int值

    包装对象转换成基本类型(以 int 类型转换integer 对象为例)

    ​int num = a.intValue();    //以int类型返回该Integer的值

    3、自动装箱拆箱

    自动拆箱:对象转成基本数值

    自动装箱:基本数值转成对象

    Integer i = 4;    //自动装箱,相当于Integer i = Integer.valueOf(4);

    i = i + 5;    //等号右边:将i对象转成基本数值(自动拆箱) i.intValue() + 5; 加法运算完成后,再次装箱,把基本数值转成对象。

    自动装箱细节演示 :当数值在 byte 范围时,进行自动装箱,不会创建对象空间而是使用已有的空间

    //手动转换

    Integer a = new Integer(3);

    Integer b = new Integer(3);

    System.out.println(a == b);    //false,地址空间不同

    System.out.println(a.equals(b));    //true

    //自动装箱

    Integer c = 127;

    Integer d = 127;

    System.out.println(c == d);    //true,在byte范围内自动装箱使用已有空间

    System.out.println(c.equals(d));    //true

    二、System 类

    System 代表程序所在的系统,提供了对应的一些系统属性消息和系统操作。System 类不能手动创建对象,因为构造方法被 private 修饰,组织外界创建对象。System 类中都是 static 方法,类名即可访问。

    System 类中常用的方法:

    currentTimeMillis():获取当前系统时间与1970年01月01日00:00点之间的毫秒差值

    exit(int status):用来结束正在运行的Java程序,通常传入 0 参数记为正常状态,其他为异常状态

    gc():用来运行 JVM 中的垃圾回收器,完成内存中垃圾的消除

    getProperty(String key):用来获取指定键(字符串名称)中所记录的系统属性消息

    arraycopy(Object src,int srcPos,Object dest,int desPos,int length):从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束

    三、Math 类

    Math 类是包含用于执行基本数学运算的方法的数学工具类,类似这样的工具类,代表能够完成一系列功能的类,在使用他们时,不用创建对象,该类中方法都为静态方法。

    Math 类中常用方法:

    abs(double a):返回 double 值的绝对值

    ceil(double a):返回结果为比参数值大的最小整数的 double 值

    floor(double a):返回结果比参数值小的最大整数的 double 值

    max(double a,double b):返回两个参数中较大的值

    min(double a,double b):返回两个参数中较小的值

    pow(double a,double b):返回第一个参数的第二个参数次幂的值

    random():产生一个大于等于0.0且小于1.0的double小数

    round(double a):返回参数值四舍五入的结果

    四、Arrays 类

    Arrays 类包含用来操作数组的各种方法,如果指定数组引用为 null,则访问此类中的方法都会抛出空指针异常 NullPointerException。

    Arrays 类中常用方法:

    sort(int[] a):将数组元素按数字升序排序

    toString(int[] a):用来返回指定数组元素内容的字符串形式

    binarySearch(int[] a):在有序数组中,查找给定元素出现的位置,没有查到则返回-1(使用的是二分搜索法)

    五、BigInteger 类

    在Java中,long 型为最大的整数类型,如果超过了 long 型的数据,就会被封装成 BigInteger 对象,在 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);

    }

    六、BigDecimal 类

    在Java中,double 和 float 类型在运算中很容易丢失精度,造成数据的不准确性,可以使用 BigDecimal 类实现浮点数据的高精度运算

    BigDecimal  类的使用:

    public static void main(String[] args) {

        //大数据封装为BigDecimal对象

        BigDecimal big1 = new BigDecimal("0.09");

        BigDecimal big2 = new BigDecimal("0.01");

        //add实现加法运算

        BigDecimal bigAdd = big1.add(big2);

        BigDecimal big3 = new BigDecimal("1.0");

        BigDecimal big4 = new BigDecimal("0.32");

        //subtract实现减法运算

        BigDecimal bigSub = big3.subtract(big4);

        BigDecimal big5 = new BigDecimal("1.105");

        BigDecimal big6 = new BigDecimal("100");

        //multiply实现乘法运算

        BigDecimal bigMul = big5.multiply(big6);

    }

    对于浮点数据的除法运算,和整数不同,可能出现无限不循环小数,因此需要对所需要的位数进行保留和选择舍入模式

    相关文章

      网友评论

          本文标题:Java中常用的类(类型包装类、System类、Math类、Ar

          本文链接:https://www.haomeiwen.com/subject/pdgogctx.html