关于“==”运算符和.equals()方法的对比

一、“==”运算符

1、“==”运算符的意思就是判断两个变量是否相等,但是这里的相等是内存地址的相等。java中在new一个新的对象时,会开辟新的内存空间,所以每一个对象之间的内存地址是不相同的,有些同学在不清楚其根本原理的时候就会与.equals()方法混淆。

比如说:

        String a = new String("abc");
        String b = new String("abc");
        if (a==b){
        System.out.println("y");
        }else{
            System.out.println("n");
        }

可以看出虽然两个对象的值时一样的,但是他们却不相同,这就说明了“==”运算符在判断的时候比较的其实是两个对象的地址,所以在比较两个对象的值的时候大家就不要使用“==”运算符。

2、但是平时对于比较变量的时候,其实在赋值的时候变量赋给的不是值,而是内存地址,所以是相等的

        int a = 1;
        int b = 1;
        if(a==b){
            System.out.println("y");
        }else{
            System.out.println("n");
        }

 

这里其实是把数值“1”的内存地址赋给了a,然后同样又将地址赋给了b,所以两者在比较的时候比较的内存地址,所以是相同的 

二、.quals()方法

1、这个方法一般是针对于String()字符串或者是对象之间的比较,比较的一般都是字符串值内容

比如说:

        String s1 = new String("abc");
        String s2 = new String("abc");
        if(s1.equals(s2)){
            System.out.println("y");
        }else{
            System.out.println("n");
        }

 虽然s1和s2的内存地址不同,但是他们的字符串值是相同的,所以输出“y”,由此可以说明这个方法是比较的其中的字符串值。

三、总结

“==”运算符是比较内存地址;

.equals()使用的前提条件是两者必须是字符串,而且比较的是其内容;

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小狐狸崽子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值