Java中字符串两种等于的方法的对比

  Java中,我们要经常进行条件的判断,但是对于两种判断方式“==”和“equals()”,又不是很清楚具体的使用方法

   1、         其中:::

                     “==”:是用来比较字符串的引用地址,也就是说从地址上面进行比较

                     “equals()”:即 equals(Object o): Object类中的方法,所以,在每一个java类中,都会有这个方法,因为每一个java类都是直接或者间接的Object类的子类,会继承到这个方法,如果自己所写的类中已经重写了equals方法,那么就按照用户自定义的方式来比较两个对象是否相等,如果没有重写过equal()方法,那么会调用父类(Object)中的equals方法进行比较,也就是比较地址值,而在比较字符串时比较字符串的值,因为在String 类中,将Object类中的equals方法进行了重写,重写之后比较的是内容


注意:equals(Object o)方法只能是一个对象来调用,然后参数也是要传一个对象的

    所以下面是错误的写法:
    因为基本数据类型不是算是对象,不能调用方法
    int a = 1;
    a.equals(1);

2、    如果是基本数据类型那么就用==比较,如果是引用类型的话,想按照自己的方式(重写自己要进行比较的东西)去比较,就要重写这个类中的equals方法, 如果没有重写,那么equals和==比较的效果是一样的,都是比较引用的地址值
          如果是比较字符串,那么直接用equals就可以了,因为String类里面已经重写了equals方法,比较的是字符串的内容,而不是引用的地址值了

   比如定义

Student  s1=new Student();   Student s2=new Student();

  s1==s2为false,因为s1与s2不是同一个地址

如果采用如下定义:                

Student  s1=new Student();
Student s2=s1;

 则结果为:s2==s1为true,因为s2是s1的赋值

具体来讲,假如两个值相同,不同地址的字符串用“==”比较,其布尔值为false,而用“equals()”进行比较,其布尔值为true,在正常比较时,除非两个对象是赋值关系,不然比较字符串是否相同应该用equals();



                    



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

suwu150

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值