`
凤凰山
  • 浏览: 146513 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

再议 “==”与 equals

 
阅读更多

 

String a=new String("ok");

String b=new String("ok");

 

“==”比较左边,equals比较右边

 

 

即“==”是看两个对象在内存中的首地址是否相同

equals是比较两个对象的内容(本身)是否相同

---------------------------------------------------------------

 

其实只需要知道变量,对象在内存中的样子就很容易理解了。先看图:

 


因为a与b都是new了一个String 对象,故在堆内存中是开辟的两块空间,并把各自开辟空间的内存首地址保存在变量a,b中

 

 

a==b  ----》false,“==”看左边。因为a中保存的是第一个对象“ok”的内存地址1056,b中保存的是第二个对象“ok”的地址2314,显然1056!=2314,故返回false

 

 

a.equals(b)-->true , equals看右边。即是对 a与b所指向的对象的内容进行比较,a指向的那块内存中的值是“ok”,b指向的那块内存的内容也是“ok”,故他们是在内容上相同的,所以是true

 

 

 

 

 

在比较两个变量是否指向同一个对象时用 “==”

在比较两个变量指向的对象的内容是否相同时用equals

 

"=="看等号左边,equals看等号右边

  • 大小: 32 KB
分享到:
评论

相关推荐

    java中equals和==的区别

    Java 中 equals 和 == 的区别 Java 中的 equals 和 == 是两个不同的概念,很多开发者容易混淆它们。理解这两个概念的区别是非常重要的,因为它们对编程的正确性和性能都有很大的影响。 首先,我们需要了解 Java ...

    ==和equals的区别

    Java 中的 equals 方法是一个比较对象内容的方法,其声明格式是 public boolean equals(Object obj),比较规则为:当参数 obj 引用的对象与当前对象为同一个对象时,就返回 true,否则返回 false。例如: ```java ...

    ==与equals的比较

    "Java中的==和equals方法比较" 在Java中,`==`和`equals`是两种不同的比较方法,前者比较引用地址,而后者比较对象的实际内容。 首先,让我们来看看`==`运算符的用法。`==`运算符可以用来比较基本数据类型和引用...

    equals与==之间的区别

    在Java编程语言中,`equals`方法与`==`操作符是进行对象比较时最常用的两种方式,但它们之间存在着显著的区别。理解这些差异对于正确地处理对象比较至关重要。 ### `==` 操作符 `==`操作符主要用于比较两个基本...

    Java中的==和equals区别

    ### Java中的`==`与`equals`方法的区别详解 在Java编程中,比较对象的相等性是一个常见的需求,但很多初学者对于`==`运算符与`equals`方法的区别容易混淆。本文将深入探讨两者之间的差异,以及它们在不同场景下的...

    java中equals和==的区别.doc

    Java 中 equals 和 == 的区别 Java 中的 equals 和 == 是两个不同的运算符,它们之间的区别是非常重要的。 首先,我们需要了解 Java 中的内存模型。在 Java 中,变量可以分为两种:基本类型(primitive type)和...

    ==和equals的比较

    C# 中的 == 和 equals 比较 在 C# 编程语言中,`==` 和 `equals` 是两个常用的比较运算符,但它们之间有很大的区别。 堆和栈的区别 在理解 `==` 和 `equals` 之前,我们需要了解堆和栈的区别。堆是一种动态分配的...

    ==运算符和Equals()方法区别

    "运算符和Equals()方法区别" 在C#语言中,`==`运算符和`Equals()`方法都是用来比较两个对象是否相等,但是它们之间存在着很大的区别。 对于值类型来说,`==`运算符和`Equals()`方法的行为是一致的,都会比较两个...

    java 资料 equals 与== 的区别

    Java 中的equals和==的区别 Java 是一种面向对象的编程语言,其中有两种数据类型:基本数据类型和引用数据类型。基本数据类型包括整数类型、浮点数类型、字符类型、布尔类型等,共有八种;而引用数据类型则包括 ...

    【Java面试题】equals与==的区别

    【Java面试题】equals与==的区别

    String中==与equals区别验证

    在Java编程语言中,`==` 运算符与 `equals()` 方法被广泛用于比较对象,尤其是当处理字符串(`String` 类)时。这两者之间的区别是理解Java内存管理和对象引用的关键。以下是对给定代码片段中所展示概念的详细解析。...

    equals(Object) 与 == 的区别

    "equals(Object) 与 == 的区别" .equals(Object) 与 == 的区别是 Java 编程语言中一个常见的问题,许多初学者都感到困惑。下面我们将详细地解释这两个概念之间的区别。 首先,让我们看一个例子。假设我们有两个 ...

    == and equals() 的比较 绝对值得看

    在Java编程语言中,了解`==`和`equals()`的区别是非常关键的,因为它们在处理不同类型的数据时有不同的行为。这两个运算符在比较基本数据类型(如int、char)时表现相同,但当涉及到对象时,它们的行为就有所不同。 ...

    ==和equals方法究竟有什么区别

    在Java编程语言中,`==`和`equals()`方法是用来比较对象之间关系的两种常见方式,但它们在使用上有着显著的区别。 首先,`==`运算符主要用于比较基本类型(如int、char、byte等)的值是否相等,或者比较引用类型...

    Java基础复习(内附String中equals与==区别的分析)

    字符串的intern()方法也值得讨论,它会返回常量池中与当前字符串相等的字符串,如果常量池中不存在,则将当前字符串放入常量池并返回引用。这可能导致`==`和`equals()`产生相同的结果: ```java String str1 = new ...

    知识点 比较运算符==和equals方法的比较

    默认情况下,`equals()`方法的行为与`==`相同,即比较对象的引用。但是,许多类(如String、Integer等)重写了`equals()`方法,使其能够比较对象的值。例如,在String类中,`equals()`方法会比较两个字符串的字符...

    java基础之 “==”与“equals”区别详解

    "java基础之“==”与“equals”区别详解" 根据java基础之“==”与“equals”区别详解,以下是相关知识点: 1. “==”操作符的作用: 在java中,“==”操作符用于比较两个对象是否相等。对于基本类型来说,“==”...

    java中的==和equals()方法1

    默认情况下,`equals()`方法的行为与`==`相同,即比较对象的引用。但是,很多类(如String、Integer等)都重写了`equals()`方法,使其比较对象的值或内容。例如,String类的`equals()`方法会比较两个字符串的字符...

    字符串比较之 “==”和 “equals”

    此外,String类还有一个与"equals()"相关的静态方法"compareTo()",它基于Unicode值对字符串进行字典顺序比较。如果两个字符串完全相等,"compareTo()"将返回0;如果第一个字符串小于第二个,返回负数;如果大于,则...

Global site tag (gtag.js) - Google Analytics