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

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

Integer s = new Integer(9)

Integer t = new Integer(9)

Long u = new Long(9)

(一)

  1. ==用来判断两个变量是否相等
    (1)两个变量为基本数据类型,则比较值的大小;

    int a =1 ,int b=1

    a == b ,true

    (2)两个变量为引用数据类型,则比较地址是否相同

    String str = new String("hello");

    str == "hello",false一个为常量池中的hello,str为堆内存中的。

  2. Integer类型和Long类型,两种不同类型的引用不能进行**==**比较。

(二)

***equals方法 ***

 public boolean equals(Object obj){
		    		if(obj instance Integer){
				      	return value = ((Integer) obj).intValue();
			    	}
			    	return false;
	}
  1. new String("hello").equals("hello"),true;判断字符串内容是否相同。

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

    s.equals(9),true

    s==9,true

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

    s==t,false

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

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

    Integer a =1000 ,Integer b = 1000

    Integer c = 100 ,Integer d = 100

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

    c.equals(d)结果为true

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

    a.equals(b)比较结果为false
    5.equlas()比较值内容,前提是,两个值内容是同一个类型(一个String,一个char不可比较内容)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值