JAVA中的八种包装类。
- Byte,Short,Integer,Long 这 4 种包装类默认创建了数值 [-128,127]的相应类型的缓存数据,Character 创建了数值在 [0,127] 范围的缓存数据,Boolean 直接返回 True orFalse
- 两种浮点数类型的包装类 Float,Double 并没有实现常量池技术。
- 所有整型包装类对象之间值的比较,全部使用 equals 方法比较。
代码展示:
Integer a = 128;
Integer b = 128;
System.out.println(a == b); //false
/*
java中为了提高程序的执行效率,将[-128到127]之间所有的包装对象提前创建好,
放到了一个方法区的“整数型常量池”当中了,目的是只要用这个区间的数据不需要
再new了,直接从整数型常量池当中取出来。
原理:x变量中保存的对象的内存地址和y变量中保存的对象的内存地址是一样的。
*/
Integer x = 127;
Integer y = 127;
// == 永远判断的都是两个对象的内存地址是否相同。
System.out.println(x == y); //true
Integer tt = 128;
Integer tt1 = 127;
System.out.println(tt==tt1);//false