Integer的"=="比较

package me.zhao;

public class IntegerTest {
	public static void main(String[] args) {
		int a1 = 127;
		int a2 = 127;
		
		int b1 = 128;
		int b2 = 128;
				
				
		System.out.println("a1 == a2 " + (a1 == a2));
		System.out.println("b1 == b2 " + (b1 == b2));
		
		Integer c1 = 127;
		Integer c2 = 127;
		
		Integer d1 = 128;
		Integer d2 = 128;
		
		System.out.println("c1 == c2 " + (c1 == c2));
		System.out.println("d1 == d2 " + (d1 == d2));
		
		System.out.println("a1 == c1 " + (a1 == c1));
		System.out.println("b1 == d1 " + (b2 == d2));
		
		Integer e1 = Integer.valueOf(127);
		Integer e2 = Integer.valueOf(127);
		
		Integer f1 = Integer.valueOf(128);
		Integer f2 = Integer.valueOf(128);
		
		System.out.println("e1 == e2 " + (e1 == e2));
		System.out.println("f1 == f2 " + (f1 == f2));
		
		Integer g1 = new Integer(127);
		Integer g2 = new Integer(127);
		
		Integer h1 = new Integer(128);
		Integer h2 = new Integer(128);
		
		System.out.println("g1 == g2 " + (g1 == g2));
		System.out.println("h1 == h2 " + (h1 == h2));
		
		System.out.println("a1 == g1 " + (a1 == g1));
		System.out.println("b1 == h1 " + (b1 == h1));
		
		System.out.println("e1 == g1 " + (e1 == g1));
		System.out.println("f1 == h1 " + (f1 == h1));
	}
}
a1 == a2 true
b1 == b2 true
c1 == c2 true
d1 == d2 false
a1 == c1 true
b1 == d1 true
e1 == e2 true
f1 == f2 false
g1 == g2 false
h1 == h2 false
a1 == g1 true
b1 == h1 true
e1 == g1 false
f1 == h1 false

结论:

  • 两个int相比较,总是会比较值
  • 两个非new的Integer比较时(包括Integer.valueOf),如果值是在-128 ~ 127之间,则比较的是值,为true;否则比较的是地址,为false。例如c1 == c2、d1 == d2、e1 == e2、f1 == f2
  • 两个new Integer比较时,比较的是地址,为false。例如g1 == g2、h1 == h2
  • int与Integer(包括new与非new的Integer)比较时,Integer会自动拆箱为int,相当于两个int的进行值的比较,为true。例如a1 == c1、b1 == d1、a1 == g1、b1 == h1
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值