`
yinxiaoyong
  • 浏览: 16264 次
  • 性别: Icon_minigender_1
  • 来自: 湘潭
最近访客 更多访客>>
社区版块
存档分类
最新评论

equals()和==的一点点比较

J# 
阅读更多
这里记一点点关于equals方法和==的区别
总的说来,==永远是比较两边的内存地址,即比较引用是否指向相同的内容
而关于equals方法,很多人都认为应该是比较对象的内容
但是查看Object的源代码,可以发现equals方法的源代码如下:
    public boolean equals(Object obj) {
	return (this == obj);
    }

这个是源代码,很显然,在Object里面,equals和==是完全相等的,因为equals本身需要==方法来实现
但是为什么大家都会有这样的感觉:equals方法是比较内容,而不是比较内存地址呢,这是因为很多的类重写了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方法中是通过一个一个地比较两个字符串中的字符来判断的,这时反应出来的就是对象的内容了
分享到:
评论

相关推荐

    java中equals和==的区别

    Java 中 equals 和 == 的区别 ...equals 和 == 是两个不同的概念,equals 比较的是对象的内容,而 == 比较的是对象的地址。在编程中,正确地使用 equals 和 == 是非常重要的,以避免程序中的错误和bug。

    java中equals和==的区别.doc

    equals 运算符则比较的是两个变量是否引用的是同一个对象,即堆中的内容是否相同。equals 运算符可以用于比较两个对象的内容是否相同,而不仅仅是比较它们的引用是否相同。 让我们通过一个简单的示例来说明这两者的...

    java中equals和==的区别.docx

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

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

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

    equals与==之间的区别

    - **适用性**:`==`适用于基本类型和引用类型的地址比较,而`equals`主要适用于对象的内容比较。 - **行为**:`==`比较的是内存地址,而`equals`在某些类中比较的是对象的状态(内容)。 - **性能**:通常来说,`==`...

    Java 中equals和==的区别.doc

    Java 中equals和==的区别

    java 资料 equals 与== 的区别

    在上面的例子中,str1 和 str2 是两个字符串对象,equals 方法比较的是它们的值,因为它们的值相等,所以输出“对象 str1 和对象 str2 的值相等”。 == 运算符比较的是变量的值或内存地址,而 equals 方法比较的是...

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

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

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

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

    java中equals和==的比较.pdf

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

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

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

    java中equals和==的区别.

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

    java中equals和==的区别.pdf

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

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

    在Java中,`equals()`方法和`==`运算符都是用来比较对象的,但它们的比较方式不同。`==`运算符用于比较基本类型(如int,char)的值是否相等,对于引用类型,`==`比较的是两个引用是否指向内存中的同一个对象。而`...

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

    在Java编程语言中,`equals()`方法和`==`运算符是两个经常被用来比较对象是否相等的关键概念。理解它们的区别和用法对于任何Java开发者来说都至关重要,特别是对于那些正在积累Java开发经验的人来说。 首先,让我们...

Global site tag (gtag.js) - Google Analytics