Java中只有两种数据类型:基本数据类型和引用数据类型。
包装类:
基本数据类型是不能new对象的,在使用的是时候,只用他们的数值;使用基本数据类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,所以引申出来了包装类,在创建对象的时候使用。
自动装箱和自动拆箱:
自动装箱:基本数据类型转换为对应的包装类;
自动拆箱:对应的包装类转换为基本数据类型。
在Java中,基本数据类型和其对应的包装类可以实现自动装箱和自动拆箱的效果;
public static void main(String[] args) {
Integer in = 123;
System.out.println(in);
int num = in;
System.out.println(num);
}
手动装箱和手动拆箱:
手动装箱:基本数据类型通过valueOf(基本数据类型)方法转换为对应的包装类;
手动拆箱:对应的包装类通过xxxValue()方法转换为基本数据类型。
public static void main(String[] args) {
//方法一:使用valueOf(基本数据类型)方法手动装箱
Integer integer = Integer.valueOf(123);
//手动拆箱
int i = integer.intValue();
//方法二:使用有参构造方法直接手动装箱
Integer integer2 = new Integer(123456);
//把integer类型的对象,拆箱成为其他的基本数据类型
double v = integer2.doubleValue();
//传入的数字也可以是字符串的形式,但是要注意,不能出现空格等中文字符
Double dl= Double.valueOf("1245656.9");
System.out.println(integer3);//1245656.9
}
常用方法:
注意事项:
刚学习过手动装箱和手动拆箱,相信已经了解过了其中常用的方法了,但是还是要注意学习它的构造方法;里面也有许多对数值进行操作的方法,像进制转换、比较大小…
BigInteger:
包装类型的操作类,类似于基本数据类型的算数运算的Math类中的方法,BigInteger类中也提供了相关操作;
不可变的任意精度整数。
所有操作的行为就好像BigIntegers以二进制补码表示(如Java的原始整数类型)表示。 BigInteger提供了所有Java的原始整数运算符和java.lang.Math中所有相关方法的类比。 此外,BigInteger还提供了模数运算,GCD计算,原始测试,初级生成,位操作以及其他一些其他操作的操作。
BigDecimal:
包装类型的操作类,主要针对浮点类型;
不变的,任意精度的带符号的十进制数字。
BigDecimal类提供了算术,缩放操作,舍入,比较,散列和格式转换的操作。