`
mengsina
  • 浏览: 191467 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

两个对象相等equals和==的区别

阅读更多
比如:String s1 = "abc";
      String s2 = new String("abc");

equals返回true,但是不“==”,但是他们的hashcode是相同的,为什么不“==”

最佳答案

String s1 = "abc";
s1指向了“abc”
String s2 = new String("abc");
生成了对象new String("abc");s2指向这个对象,这个对象引用了“abc”;
equals意义是判断内容是否一直因为s1内容为“abc”,s2内容也为“abc”因此返回true。
==是判断引用是否一致,s1、s2指向不同所以返回false。
83299387gvirus说法不对“abc”只生成一次,具体是生成在堆还是栈不同虚拟机实现原理不同。

引用自:百度知道。
具体可以参照:http://yyp003.iteye.com/blog/563694
分享到:
评论

相关推荐

    java中equals和==的区别

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

    java中equals和==的区别.doc

    equals 运算符可以用于比较两个对象的内容是否相同,而不仅仅是比较它们的引用是否相同。 让我们通过一个简单的示例来说明这两者的区别: public class TestString { public static void main(String[] args) { ...

    java 资料 equals 与== 的区别

    在 Java 中,== 和 equals 是两个不同的运算符,用于比较两个对象或变量的值或内存地址。 == 运算符 == 运算符用于比较两个对象或变量的值或内存地址。对于基本数据类型,== 运算符比较的是变量的值。如果两个变量...

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

    默认的`equals()`方法会按照`==`的方式进行比较,但在String类中,`equals()`会比较两个字符串的字符序列是否相等: ```java String str1 = new String("Hello"); String str2 = "Hello"; System.out.println(str1....

    equals与==之间的区别

    `equals`方法用于比较两个对象的内容是否相等。默认情况下,`equals`方法在`Object`类中被定义为比较两个对象的引用是否相同,这与`==`操作符的行为相似。然而,许多Java类(如`String`、`Integer`等)重写了`equals...

    C#使用Equals()方法比较两个对象是否相等的方法

    默认情况下,`Equals()` 方法会比较两个对象的内存地址,看它们是否指向同一个实例。如果两个对象是同一个实例,那么`Equals()`返回 `true`;否则,返回 `false`。例如,如果你有两个字符串对象,即使它们包含相同的...

    java中equals和==的区别.

    2. 在`String`类中,`equals()`方法已经被重写,用于比较两个字符串对象的内容是否相等,不考虑它们的引用。这意味着即使两个`String`对象在内存中位于不同的位置,只要它们包含相同的字符序列,`equals()`也会返回`...

    java中equals和==的区别.pdf

    在Java中,比较两个对象是否相等时,经常使用到的运算符有"=="和"equals"。虽然两者都可以用于比较,但它们有着本质的区别,特别是在比较对象和基本数据类型值时。 首先,我们来了解"=="运算符。在Java中,"==...

    java中equals()函数的用法 equals和==的区别

    而`equals()`方法是Object类中的一个成员方法,它的默认行为也是比较两个对象的引用是否相等,与`==`一致。但是,很多类(如String、Integer等)都重写了`equals()`方法,以便进行更深层次的内容比较。例如,String...

    java中equals和==的区别的剖析.pdf

    默认情况下,`equals()` 方法的行为与 `==` 相同,即比较两个对象的内存地址。然而,许多类(如 String、Integer 等)重写了 `equals()` 方法,使其比较的是对象的内容而不是引用。这意味着当两个对象的内容相同时,...

    浅谈Java中的equals和==Java开发Java经验

    例如,String类和许多其他类都重写了`equals()`,使得它能比较两个对象的内容。所以,对于字符串,`str1.equals(str2)`会比较它们的内容,如果内容相同,返回`true`。 在实际开发中,我们应该根据需要比较的内容...

    java中equals和==的比较.pdf

    这意味着当调用`equals()`时,实际比较的是两个对象的内容是否相等,而非它们在内存中的位置。 3. 在String类中的特殊性: - 当两个String对象的引用指向内存中的同一字符串常量池中的值时,`==` 返回true,`...

    java中equals和==的区别文.pdf

    在Java编程语言中,`equals()` 和 `==` 是两种常用的比较操作,它们在处理不同数据类型时有着明显的区别。本文将深入探讨这两个操作符在Java中的行为,特别是在处理值类型和引用类型时的不同。 首先,值类型如整型...

Global site tag (gtag.js) - Google Analytics