java 常见的数据值比较 Intrger;Long
最近复习了一下基础,记录一下
public static void main(String[] args) {
Integer i = 200;
Long l = 200L;
// System.out.println(i==l);//类型不一样,不能用==比较,直接编译报错
System.out.println(i == l.longValue()); //true 拆箱然后比较两个基本类型
System.out.println(i.equals(l));//false //两个数据类型不一样.直接false
System.out.println(i.equals(l.longValue()));//false l会装箱成Long,然后类型不一样
System.out.println(i.equals(l.intValue()));//true l会装箱成Integer 然后两个值相同
Integer a = 3;
Integer b = 3;
System.out.println(a==b);//true 值在-128~127范围内,从缓冲区取值,相同
System.out.println(a.equals(b));//true 两个包装类型,值也相同
Integer c = 129;
Integer d = 129;
System.out.println(c==d);//false 超出了-128~127范围,不在缓存区中,地址值不同,
System.out.println(c.equals(d));//true 类型相同,值也相同
Integer e = 127;
Integer f = 127;
System.out.println(e==f);//true 值在-128~127范围内,从缓冲区取值,相同
System.out.println(e.equals(f));//true 类型相同,值也相同
Long h = 128L;
Long g = 128L;
System.out.println(h==g);//false 超出了-128~127范围,不在缓存区中,地址值不同,
System.out.println(h.equals(g));//true 类型相同,值相同
Long k = 127L;
Long m = 127L;
System.out.println(k==m);//true 值在-128~127范围内,从缓冲区取值,相同
System.out.println(k.equals(m));//true 类型相同,值也相同
}
运行结果: