基本数据类型包装类
基本数据类型包装类:
在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