java中的“==”与equlas的区别

示例代码

1.1,String类(引用类型)

[java]  view plain copy print ?
  1. <span style="font-family: KaiTi_GB2312; font-size: 18px">String str1="test";  
  2. String str2="test";  
  3. //true true  
  4. System.out.println(str1==str2);  
  5. System.out.println(str1.equals(str2));  
  6. String str3=new String("test");  
  7. String str4=new String("test");  
  8. //false true  
  9. System.out.println(str3==str4);  
  10. System.out.println(str3.equals(str4));  
  11. String str5=str1;  
  12. //true true  
  13. System.out.println(str5==str1);  
  14. System.out.println(str5.equals(str1));  
  15. String str6=str3;  
  16. //false true  
  17. System.out.println(str6==str1);  
  18. System.out.print(str6.equals(str1));</span>  


刚开始,以为“==”是比较值,equals是比较引用对象,请看下面的经典论断(主要是针对str3和str4):

1:==比值,这两个值都是test,应该是true,可结果是false,后面那个equals比较对象,两个都是new的,应该不一样,可结果是true

2:==比值,因为这两个不是简单类型,无法比较,所以返回false;equals 比较对象,此时str3 和str4新创建了两个字符串对象,这两个对象是一样的,返回true

3:如果是byte、int、boolean、long,float,这些的话,==就是比较值,equals比对象,是吧

1.2,Integer类(int的包装类,非8种基本类型)

  1. <span style="font-family: KaiTi_GB2312; font-size: 18px">Integer int1=1;  
  2. Integer int2=1;  
  3. //true true  
  4. System.out.println(int1==int2);  
  5. System.out.println(int1.equals(int2));  
  6.   
  7. Integer int3=new Integer(1);  
  8. Integer int4=new Integer(1);  
  9. //false true  
  10. System.out.println(int3==int4);  
  11. System.out.println(int3.equals(int4));  
  12.   
  13. Integer int5=int1;  
  14. //true true  
  15. System.out.println(int5==int1);  
  16. System.out.println(int5.equals(int1));  
  17.   
  18. Integer int6=int3;  
  19. //true true  
  20. System.out.println(int6==int3);  
  21. System.out.print(int6.equals(int3));</span> 
结果和String类一致!

备注:用简单基本类型,根本无法使用equals方法,只能用==,对于String类或者简单类型的包装类(Integer是int的包装类)==比较的是否是同一个地址(对象),equals比较的是地址值


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值