一、包装类
- 我们所使用的一般数据类型,又称为值类型。这种数据类型存储在栈中,不属于对象的范畴。但Java是一门面向对象的语言,万物皆对象,自然不能把这些值类型排除在外,所以有了包装类。
- 所谓包装类,就是把我们所用到的值类型变量进行一个包装,使我们能通过对象的方式对其进行操作,让其有自己的属性和方法。把值类型数据包装成引用数据类型的这一过程又称为装箱,而这一逆过程则称之为拆箱。
- 基本对应关系:
一般情况,我们的编译器会对数据进行自动装箱拆箱:
int aInt = 0;
Integer aInteger = aInt; //自动装箱
int aI2i = aInteger; //自动拆箱
常用的一些方法及与字符串之间的相互转换(以Integer为例):
- static int parseInt(String s) 将字符串转成相应的int数据类型
- static Integer valueOf(int i) 装箱方法
- static Integer valueOf(String s) 返回保持指定的String的值的Integer对象
String s1="123";
int i1=Integer.parseInt(s1);//123
Integer i2=Integer.valueOf(s1);//123
int i3=Integer.valueOf(s1); //123 自动拆箱
同样,String类提供了各基本数据类型转换成String的相应方法:static String valueOf(int i)
包装类和基本数据类型的区别
- 默认值不同
包装类的默认值是null,而基本数据类型是对应的默认值(比如整型默认值是0,浮点型默认值是0.0)
- 存储区域不同
基本数据类型是把值保存在栈内存里,包装类是把对象放在堆中,然后通过对象的引用来调用他们
- 传递方式不同
基本数据类型变量空间里面存储的是值,传递的也是值,一个改变,另外一个不变,而包装类属于引用数据类型,变量空间存储的是地址(引用),传递的也是引用,一个变,另外一个跟着变
二、Arrays工具类
三、Collections工具类
由于Collection集合所存元素皆为对象,所以要进行比较,必须实现Comparable接口或者传入Comparator比较器,否则无法进行比较。进行二分法查找时,同样需要现将集合进行排序后再进行查找,否则查找结果无意义