java中两种比较方式==和equals()

##两种比较 ==和equals()方法 ##

Integer s = new Integer(9)
 
Integer t = new Integer(9)

Long u = new Long(9)
============================================
Integer a =1000 ,Integer b = 1000

Integer c = 100 ,Integer d = 100
============================================
String s = "hello"

Sring t ="hello"

String r = new String("hello");

***equals方法 ***

 public boolean equals(Object obj){
		    		if(obj instance Integer){
				      	return value = ((Integer) obj).intValue();
			    	}
			    	return false;
	}
  1. Integer类型和Long类型,两种不同类型的引用不能进行**==**比较。

  2. 基本数据类型之间没有equals()方法。

    int a =1 ,int b =1 。

    a==b正确

    a.equals(b)没有这种比较。

  3. new Integer()int比较,Integer会自动拆箱, ==equals()均为true

    s.equals(9),true

    s==9,true

  4. new Integr()new Integr(),比较 ==falseequals()ture

    s==t,false

    s.equals(t),true 同理 s.equals(new Integer(9)),true

  5. IntegerInteger比较,由于直接赋值会自动装箱。

    (1)值在[-128,127]之间时,不会创建新的Integer对象,而是直接从缓存IntegerCache中获取创建好的Integer对象

    c.equals(d)结果为true

    (2)大于这个区间,则会new新的Integer

    a.equals(b)比较结果为false
    6.==比较两个内存地址是否相同,相同为true,不同为false。

    equals()比较字符串内容是否相同,相同为true。

    (1)在字符缓冲池中,若已有字符串,则直接赋值不需要再创建一个字符串。
    s == t,true
    (2)若果new创建了一个新的字符串。
    此时地址不同:s ==r,false
    字符串内容相同的话,s.equals( r ),true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值