Java中常用的类(类型包装类、System类、Math类、Arrays类、BigInteger类、BigDecimal类)

一、基本类型包装类

在实际开发中,往往需要将数据转换成字符串类型进行存储,会根据需要转换成指定的基本数据类型,因此,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类、Arrays类、BigInteger类、BigDecimal类))