包装类型: 基本数据类型的包装类
- 基本数据类型 — 包装类
- byte — Byte
- short — Short
- int — Integer
- long — Long
- float — Float
- double— Double
- char — Character
- boolean — Boolean
- 转换:
- 自动装箱: 基本—>包装
- 自动拆箱: 包装—>基本
举例:
public class Test {
public static void main(String[] args) {
Integer i1 = 123;//自动装箱 Integer.valueOf(121)
Integer i2 = 123;//缓冲区对象 -128~127 之外返回new Integer,之内返回缓冲区对象
int i5 = 121;
Integer i6 = 121;
Double i7=100.5;
Double i8=100.5;
Integer i3 = new Integer(121);
Integer i4 = new Integer(121);
System.out.println(i1==i2); //true 自动拆箱
System.out.println(i3.equals(i4));//true 自动拆箱
System.out.println(i3==i5);//true 自动拆箱
System.out.println(i3==i6);//false
System.out.println(i7==i8);//false
}
}
总结:
1.如果两个new Integer比较是否相等,肯定不相等,堆中的两个地址
2.如果一个Integer,一个new Integer肯定不相等,一个常量池,一个堆中的地址,肯定不相等
3.如果int与Integer|new Integer 都会发生自动拆箱,值相等就相等
4.如果是两个Integer,判断值是否在[-128,127]之间,之间就相等,否则不等