基本数据类型包装类:
在java中有一切皆对象,java中基本数据类型就不符合这种设计思想,因为八种基本数据类型并不是引用数据类型,所以java中为了解决这样的问题,JDK1.5后引入了八种基本数据类型的包装类。
八种包装类分为两大类型:
- Number: Integer,Short,Long,Double,Float,Byte都是Number的子类表示是一个数字
- Object:Character,Boolean都是Object的直接子类
自动装箱:
// 把基本数据类型转换为包装类 叫做自动装箱 Integer i1 = new Integer(12);
自动拆箱:
// 把包装类转换为基本数据类型 ,叫做自动拆箱 int i2 = i1.intValue(); Integer i3 = 10;// 建议方式
字符串类型转换为Int类型:
// 将字符串转换为int类型 int i = Integer.parseInt("1234");
int类型转换为String类型
// 将int类型转换为字符串 String s = String.valueOf(1244);
面试题:
如下一段代码,输出分别为什么
Integer t5 = 23; Integer t6 = 23; Integer t7 = 128; Integer t8 = 128; System.out.println(t5 == t6); System.out.println(t5.equals(t6)); System.out.println(t7 == t8); System.out.println(t7.equals(t8));
乍一看:true,true,true,true
结果:true ,true ,false , true
这是因为Integer类内部 通过静态内部类提供了一个缓存池,范围在-128~127之间,如果超过这个范围 Integer 值都是new出来的对象,如果用==比较结果肯定为false,如果在区间内,则为true