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

equals,== 用法比较

J# 
阅读更多

     分以下几步进行讨论 

一、equals方法对于普通的类是比较引用是否相等,和==效果一样,因为equals 方法是继承Object下来的,我们看下

Object中equals方法的写法:

    public boolean equals(Object obj) {
       return (this == obj);
    }

 

二、对于基本数据类型的包装类,euqals方法源代码如下:Integer举例:

包装类中重写了equals方法

//比较的是值,不是引用,对于基本数据类型的包装类“==”比较的才是引用

 public boolean equals(Object obj) {
   if (obj instanceof Integer) {
     return value == ((Integer)obj).intValue();
   }
   return false;
   }

对于基本数据类型,那么==比较的就是值了,这个都很好理解

那么我们看一下String这个类中的equals方法,String中也重写了equals方法,具体代码如下:

public boolean equals(Object anObject) {
 if (this == anObject) {
     return true;
 }
 if (anObject instanceof String) {
     String anotherString = (String)anObject;
     int n = count;
     if (n == anotherString.count) {
  char v1[] = value;
  char v2[] = anotherString.value;
  int i = offset;
  int j = anotherString.offset;
  while (n-- != 0) {
      if (v1[i++] != v2[j++])
   return false;
  }
  return true;
     }
 }
 return false;
    }

 

String这个类的equals方法比较特殊,它先比较引用,如果引用相等,那么返回值就是true,如果引用不相等,

那么再比较值,如果值相等,那么返回值也是true,只有当引用和值都不相等的情况下,返回的才是false

关于String中的intern()方法,此方法返回的始终是String pool中的字符串,我也在以前的文章说过,String的创建过程,如果String pool中不存在此字符串,那么创建一个新的返回,如果有的话,就直接返回此对象,

遵循对于任何两个字符串 st

     当且仅当 s.equals(t)true 时,s.intern() == t.intern() 才为 true

当然如果你写一个自己的类的话,也可以自己重写equals方法,用自己的方法来实现自己想要的功能

分享到:
评论

相关推荐

    java中equals和==的区别

    如果我们想要让 s2 也引用同一个对象,可以使用 intern() 方法: public class TestString { public static void main(String[] args) { String s1 = "Monday"; String s2 = new String("Monday"); s2 = s2....

    java中equals和==的区别.doc

    这也解释了为什么我们不能使用 == 运算符来比较两个字符串对象的值,而应该使用 equals 运算符。 在 Java 中,还有一个字符串缓冲池的概念。当我们使用字符串常量时,Java 会在缓冲池中查找相同值的对象,如果找到...

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

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

    java 资料 equals 与== 的区别

    Java 中的equals和==的区别 Java 是一种面向对象的编程语言,其中有两种数据类型:基本数据类型和引用数据类型。基本数据类型包括整数...在编写 Java 代码时,需要根据具体情况选择使用 == 运算符或 equals 方法。

    Java中equals与==的用法和区别

    在 Java 中,equals() 方法和 == 操作符都是比较操作符,但是它们的用法和区别非常重要。equals() 方法用于比较对象的内容是否相等,而 == 操作符用于比较变量的值或地址值。在编写 Java 程序时,需要正确地使用这两...

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

    在Java编程语言中,比较运算符`==`和`equals()`方法是用来检查两个对象是否相等的,但它们之间存在显著的区别。理解这些差异对于编写正确的代码至关重要。 首先,我们来看`==`运算符。它主要用于基本数据类型的比较...

    ==和equals的区别

    在 Java 中,比较值大小有两种方法:== 和 equals,这两个方法的使用场景和比较规则不同,下面我们将详细探讨它们的区别。 基本数据类型和引用数据类型 在 Java 中,有两种数据类型:基本数据类型和引用数据类型。...

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

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

    ==与equals的比较

    因此,当我们需要比较字符串的内容时,应该使用`equals`方法,而不是`==`运算符。 在Java中,`==`运算符和`equals`方法有着不同的比较方式。`==`运算符比较引用地址,而`equals`方法比较对象的实际内容。在比较对象...

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

    "=="和"equals()"是两种常用的字符串比较方法,但它们之间存在一定的区别和使用场景。这篇博客将深入探讨这两个方法的工作原理以及何时应该使用它们。 首先,"=="运算符在Java中主要用于比较基本类型变量的值,如...

    java中equals和==的比较.pdf

    在Java编程语言中,`equals()` 和 `==` 都用于比较对象,但它们的用法和含义有所不同。本文将详细解析这两个操作符在Java中的区别,并通过具体的例子进行阐述。 1. `==` 操作符: `==` 在Java中主要用来比较基本...

    java中equals和==的区别.docx

    String 类的 equals 方法用于比较两个字符串的内容是否相同,而 == 操作符用于比较两个字符串变量的值是否相同。 例如,以下代码将比较两个字符串变量的值是否相同: ```java String s1 = "Monday"; String s2 = ...

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

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

    java中equals和==的区别.

    在Java编程语言中,`equals()`方法和`==`运算符是用于比较对象的两种不同方式,它们在处理不同类型的数据时有不同的行为。了解这两者的区别对于编写正确的代码至关重要。 `==`运算符: 1. `==`用于比较基本类型的...

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

    同时,需要注意的是,如果自定义了类并且想要比较对象内容,记得要同时重写`equals()`和`hashCode()`方法,以保持两者的一致性,这在使用HashMap、HashSet等容器时尤为重要。 此外,当我们涉及到数组或者集合时,`...

    equals(Object) 与 == 的区别

    这就是为什么在上面的例子中,使用 equals(Object) 方法比较 s1 和 s2 的结果是 true,而使用 == 运算符比较的结果是 false。 因此,== 运算符比较的是两个对象的引用,而 equals(Object) 方法比较的是两个对象的...

    java中equals和==的比较文.pdf

    而`equals()`方法则是对象的比较方法,通常重写自`Object`类,用于比较对象的内容是否相等。 对于`String`类,`equals()`方法按照内容进行比较,如果两个`String`对象包含的字符序列相同,`equals()`返回`true`。`=...

    Java中的==和equals区别

    - 对于字符串和包装类,应优先使用`equals`方法进行比较,以确保得到正确的结果。 理解`==`与`equals`之间的区别对于编写正确且高效的Java代码至关重要。希望本文能帮助您更好地掌握这一概念,并在实际开发中避免...

Global site tag (gtag.js) - Google Analytics