天天看点

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

​目录​

​​一、基本类型包装类​​

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

​​2、基本类型和对象转换​​

​​3、自动装箱拆箱​​

​​二、System 类​​

​​三、Math 类​​

​​四、Arrays 类​​

​​五、BigInteger 类​​

​​六、BigDecimal 类​​

一、基本类型包装类

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

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

基本数据类型 对应的包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
  •  将字符串转换成基本数据类型: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 类实现浮点数据的高精度运算

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);
}      

继续阅读