美文网首页
Java中equal和==的区别

Java中equal和==的区别

作者: 七个榴莲 | 来源:发表于2018-04-18 09:39 被阅读0次

大家先来做个题目,以下看下自己能不能作对。


public class Test1{
    public static void main(String args[]){
            String a="1234";
            String b="1234";
            String c = new String("1234");
            System.out.println(a==b);
            System.out.println(a==c);
            System.out.println(a.equals(c));
    }
}

正确答案是答案是:1.true 2.false 3.true
下面我来分析下过程:
①第一次String a="1234"时,会在常量池中创建一个常量1234,String b=1234时,常量 池中已经有了该常量,所以直接取,a和b的地址一样,所以地址值相等;
②String c = new String("1234")重新new了对象,在堆内存中开辟了新的空间,所以地址值不相等,
③String 类中重写的 equals 方法,所以只比较字符串内容 , 不比较地址值所以为true
(但在一些类库当中这个方法 被重写 了,如 String,Integer,Date 在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。)

最后我再总结下equals()与==的区别:
①对于==号来说,如果是作用于基本数据类型的变量,比较的是他们的值是否相等;
如果是作用于引用类型的变量,是判断两个对象内存地址是不是相等。

②对于equals()来说,如果没有重写equals()办法,等价于通过“==号”比较这两个对象。
如果重写equals()办法,作用是比较内容是否相同。如果内容相等,则返回true。
(如String,Data中的这个方法重写了,作用比较内容是否相同。)

相关文章

  • 2020-08-29

    java基础 一、java 中==和 equals 和 hashCode 的区别 1、对象类型不同 1、equal...

  • Java中equal和==的区别

    大家先来做个题目,以下看下自己能不能作对。 正确答案是答案是:1.true 2.false 3.true下面...

  • Java中==和equal的区别

    Java中==和equal的区别为: 1、== 表示 判断2个变量或对象实例是否指向同一个内存空间,equals(...

  • Java面试题集锦02—Java语法基础

    05.Java中equal和==的区别是什么equal和"=="两者均为表示相等的意思,但是它们相等的含义却有所区...

  • 软件测试面试题汇总(一)

    1.Java中==和equal有什么区别 ==比较的是对象的地址,也就是是否是同一个对象; equal比较的是对象...

  • java 中“==”与“equal” 的区别

    一、java当中的数据类型和“==”的含义: 基本数据类型(也称原始数据类型) :byte,short,char,...

  • 在java语言中equals与==的区别

    通常,Java中的equals()和==操作符都用于比较对象是否相等,但是是两者之间还是存在一些区别。 equal...

  • Equal和==的区别

    ==用于比较内存单元上的值,只要值大小相同,即为true. 关于Equal,应该是判断对象是否是同一个对象。‘ S...

  • == 和 equal()的区别

    (1)对于字符串变量来说 “==”和“equals()”方法比较字符串时,其比较方法不同。 “==”比较两个变量本...

  • Java中wait和sleep方法有什么区别?

    参考Java中wait和sleep方法的区别java中的 sleep() 和 wait() 有什么区别? wait...

网友评论

      本文标题:Java中equal和==的区别

      本文链接:https://www.haomeiwen.com/subject/izamkftx.html