美文网首页
== 与 equals的区别

== 与 equals的区别

作者: ChenyuMa | 来源:发表于2017-07-12 17:03 被阅读0次

引入

==

- 基本数据类型(也称原始数据类型)

byte, short, char, int long, float, double, boolean,  == 比较的是他们的值

- 复合数据类型(类): 当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址(确切的说,是堆存放地址)

注: 

    每次new一次,都会重新开辟堆内存空间


equals

- Java当中所有的类都是继承于Object这个超类的,在Object类中定义一个eqauls的方法,这个方法的初始行为是比较对象的内存地址,但在一些类库当中这个方法被复写了,如String,Integer,Data。在这些类中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了

-- 对于复合数据类型之间进行equals比较,在没有覆写equals方法的情况下,他们之间的比较还是内存中的存放位置的地址值,跟双等号(==)的结果相同;如果被复写,按照复写的要求来。

小结: 

“==”比较的是值【变量(栈)内存中存放的对象的(堆)内存地址】equal用于比较两个对象的值是否相同【不是比地址】【特别注意】Object类中的equals方法和“==”是一样的,没有区别,而String类,Integer类等等一些类,是重写了equals方法,才使得equals和“==不同”,所以,当自己创建类时,自动继承了Object的equals方法,要想实现不同的等于比较,必须重写equals方法。"=="比"equal"运行速度快,因为"=="只是比较引用.

链接:http://www.jianshu.com/p/5ffcf937a5b1

相关文章

  • Java 拆箱与装箱

    本文知识点 基本类型与引用类型 == 与 equals() 的区别 equals() 和 hashCode 的关系...

  • "=="与equals区别

    "=="当比较的是基本数据类型,比较的是值当比较的是引用类型,比较的是地址 a.equals(b)一般情况下,比较...

  • “==”与equals区别

    “==”比较地址 JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equa...

  • Java字符串

    一、常用方法String str=""; 二、==与equals的区别 ==比较的是内存地址 equals比较的是...

  • Object,String,StringBuffer,Math,

    1,Object类.Equals方法 2,String类的创建方式以及==与Equals的区别 3,字符串

  • ==与equals()的区别

    1、如果比较的是常量,则 == 与 equals() 都是比较值知否相当2、如果是对象间的比较,== 比较对象在堆...

  • ==与equals的区别

    https://www.cnblogs.com/chris-oil/p/7253264.html

  • equals与==的区别

    ==: 1.基本类型比较用==比较的是存储的数值的大小; 2.引用类型比较用==比较的是引用类型的变量所指向的对象...

  • == 与 equals的区别

    引入 == - 基本数据类型(也称原始数据类型) byte, short, char, int long, flo...

  • equals()与==的区别

    1.下图的问题? false,true。==比较的是str1和str2两个对象的地址。 equals则是比较的是两...

网友评论

      本文标题:== 与 equals的区别

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