Java学习之数据比较

这里主要是总结一些常见的比较及其区别:

等号“==”的比较

使用“==”能够进行比较的是常见的基本数据类型,比较的是变量的内存地址。

Object的equals()方法

在Object类中equals()方法的作用和“==”一样,比较的也是变量的内存地址。

String中的比较方法
  1. str.equals(String otherstr)
    String将继承于Object的equals方法重写了,使其能够直接比较两个字符串的内容。结果返回true或者false。
  2. str.equalsIgnoreCase(String otherstr)
    忽略大小写,如果两个字符串具有相同的字符和长度,返回true。
  3. str.compareTo(String otherstr)
    该方法为按字典顺序比较两个字符串,该比较是基于字符串中各个字符的Unicode值,如果String对象位于参数字符串之前,比较结果为负整数;如果按字典顺序此String对象位于参数字符串之后,则比较结果为正整数,如果相等,结果为0。
  4. “==”比较
    ==比较的是两个String对象的引用地址
    代码举例:
 String s1=new String("123");
 String s2=new String("123");
 String s3=s2;

 System.out.println(s1==s2);   //false
 System.out.println(s1.equals(s2));  //true
 System.out.println(s3==s2);   //true

这里对于String的比较还有一种情况要说明一下

String s1="java";
String s2="java";

 System.out.println(s1==s2);   //true
 System.out.println(s1.equals(s2));  //true

第一次定义的“java”,会被放入字符串池(缓存池)中,当再次定义s2时,这是它会先去寻找字符串池中是否已经存在“java”,如果存在,则返回字符串池中“java”的地址引用,因此str1==str2也就成立。

包装类中的比较方法

包装类(Integer、Boolean、Byte、Character、Double、Number)的数据比较

  1. “==”比较式,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。
  2. equals比较
    包装类也重写了equals方法,所以调用equals方法时,比较的是包装类实际的数据值
        Integer i1=new Integer(12);
        Integer i2=new Integer(12);

        System.out.println(i1==i2);             //true
        System.out.println(+i1.equals(i2));     //false

参考资料:
https://www.cnblogs.com/gym333/p/6371689.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值