Java中常用的类(类型包装类、System类、Math类、Ar
一、基本类型包装类
在实际开发中,往往需要将数据转换成字符串类型进行存储,会根据需要转换成指定的基本数据类型,因此,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);
}
对于浮点数据的除法运算,和整数不同,可能出现无限不循环小数,因此需要对所需要的位数进行保留和选择舍入模式