zoukankan      html  css  js  c++  java
  • Java中的==和equals区别

    A.==可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同。

           B.对于String a = “a”; Integer b = 1;这种类型的特有对象创建方式,==的时候值是相同的。

           C.基本类型没有equals方法,equals只比较值(对象中的内容)是否相同(相同返回true)。

           D.一个类如果没有定义equals方法,它将默认继承Object中的equals方法,返回值与==方法相同。

    详述:

     

     

     ==和equals的实质。

     

           在JAVA中利用"=="比较变量时,系统使用变量在"栈"中所存的值作为比较的依据。

     

           基本数据类型在"栈"中存的是其内容值,而对象类型在"栈"中存的是地址,这些地址指向"堆"中的对象。

     

           java.lang包中的Object类有public boolean equals(Object obj)方法,它比较两个对象是否相等。

     

           其它对象的equals方法仅当被比较的两个引用指向的对象内容相同时,对象的equals()方法返回true。

     

           总之,"=="和"!="比较的是地址.也可认为"=="和"!="比较的是对象句柄;而equals()比较的是对象内容.或者说,,"=="和"!="比较的是"栈"中的内容,而equals()比较的是"堆"中的内容.

     

  • 相关阅读:
    Kakuro Extension HDU
    CodeForces
    HDU
    2019牛客暑期多校训练营(第二场)F.Partition problem
    UVA
    团队冲刺6
    团队冲刺4
    团队冲刺3
    团队冲刺2
    团队冲刺1
  • 原文地址:https://www.cnblogs.com/htys/p/3155998.html
Copyright © 2011-2022 走看看