`
ttwang
  • 浏览: 334716 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

equals()和==的区别

    博客分类:
  • Java
阅读更多
在Object类中equals()和==是没有区别的,都是全等(同一)的意思,一块内存,存的值也相同。
String、Integer类重写了Object类中的equals()方法,仅仅是判断值是否相等。
String s = "12345";String t = "12345";System.out.println(s.equals(t)); System.out.println(s==t);结果都是true!!因为申请的是一块常量地址,所以在声明t的时候,先判断其值是否和s相等,相等就共享同一块常量地址,不相等才申请另一块常量地址。所以此时s和t是同一的。
String s = new String("12345");String t = new String("12345");s==t的结果就是false, equals()的结果是true。因为申请的地址是堆栈,所以是两块不一样的地址,所以s 和 t 的引用不用,固s==t的结果就是false。String、Integer类重写了Object类中的equals()方法,仅仅是判断值是否相等。所以equals()的结果是true。

但是Integer除了上面两种情况一样外,还有一点是特殊的。Integer.valueOf()是将int型的值转换为Integer类的值。用这种方法新建的Integer对象在-128~127期间是全等(同一)的,超出这个范围就仅是值相等的。
Integer i1 = Integer.valueOf(12);
Integer i2 = Integer.valueOf(12);
Integer i3 = Integer.valueOf(-129);
Integer i4 = Integer.valueOf(-129);
所以,i1==i2 ,i3.equals(i4)是true,但是i3==i4的值是false。
分享到:
评论

相关推荐

    java中equals和==的区别

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

    java中equals和==的区别.doc

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

    java中equals和==的区别.docx

    Java 中 equals 和 == 的区别 Java 中的 equals 和 == 是两个常用的操作符,经常用于比较对象或变量的值。然而,许多开发者不知道它们之间的区别,或者误用它们,导致程序出错。下面我们将详细解释 equals 和 == 的...

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

    本篇复习将重点讨论String类中的`equals()`方法和`==`运算符的区别,这对于理解对象比较和字符串操作至关重要。 首先,`==`运算符在Java中用于比较基本类型(如int、char)的值,而在比较对象时,它实际上是检查两...

    Java 中equals和==的区别.doc

    Java 中equals和==的区别

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

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

    equals与==之间的区别

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

    java中equals和==的区别-5页.pdf

    java中equals和==的区别-5页.pdf

    java 资料 equals 与== 的区别

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

    java中equals和==的区别.

    理解`equals()`和`==`的区别对于避免常见的错误至关重要,比如在比较自定义对象时误用`==`而导致预期结果出错。当比较自定义对象时,通常应该重写`equals()`方法,以便比较对象的属性或状态,而不是仅仅比较引用。...

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

    在Java编程语言中,`equals()`方法和`==`运算符是两个经常被用来比较对象是否相等的关键概念。理解它们的区别对于编写出正确、健壮的代码至关重要。 首先,`==`运算符用于基本类型(如int, char, boolean)的比较,...

    java中equals和==的区别.pdf

    Java中equals和==的区别 Java是一门面向对象的编程语言,它提供了多种运算符和方法来比较对象和变量。在Java中,比较两个对象是否相等时,经常使用到的运算符有"=="和"equals"。虽然两者都可以用于比较,但它们有着...

    java equals和==的区别详解

    在Java编程语言中,`equals()` 和 `==` 运算符在比较对象时有着显著的不同。理解这两者的区别对于编写高效、可靠的代码至关重要。以下是它们的详细解释: 1. **`==` 运算符**: `==` 在Java中主要用于比较基本类型...

Global site tag (gtag.js) - Google Analytics