`
holoblog
  • 浏览: 1264458 次
博客专栏
E0fcf0b7-6756-3051-9a54-90b4324c9940
SQL Server 20...
浏览量:19554
文章分类
社区版块
存档分类
最新评论

java中equals()与==操作符

 
阅读更多

一般来说equals()方法是比较两个对象值的。

例如比较两个Integer对象

publicclassEqualival...{
publicstaticvoidmain(String[]args)...{
Integern1
=newInteger(47);
Integern2
=newInteger(47);
System.out.println(n1.equals(n2));
}

}

打印true

//Thinking in Java中的例子

==操作符是用来比较引用是否相等

publicclassEqualival
...{
publicstaticvoidmain(String[]args)...{
Integern1
=newInteger(47);
Integern2
=newInteger(47);
System.out.println(n1
==n2);
System.out.println(n1
!=n2);
}

}

打印false,true

感觉以上的例子并没有说明什么看看下面的这个String的例子:

publicclassTestRef
...{
publicstaticvoidmain(String[]args)
...{
Strings
=newString("a");
if(s=="a")
System.out.println(
"true1");
if(s.equals("a"))
System.out.println(
"true2");
Stringss
="a";
if(ss=="a")
System.out.println(
"true3");
if(ss.equals("a"))
System.out.println(
"true4");
}


}


这个打印true2,true3,true4。因为new String时在堆中生成了空间给“a”,对于第一次的s==“a”时,栈分配空间给"a",并把"a"当成一个匿名的对象。赋值ss="a",意味着在栈中分配了空间给"a",并把"a"这个匿名的对象引用赋给ss。,所以s与"a"的引用不等。而"a"再次出现在代码中时,编译器查找到先前的“a”对象,而不是再分配内存给"a"。所以ss与"a"的引用是相等的。但不管引用是否相等,其值都是"a",这便看出了equals()的威力。

分享到:
评论

相关推荐

    java中equals和==的区别

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

    java中equals和==的区别.docx

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

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

    Java 中的 equals 与 == 是两个常用的比较操作符,但是它们的用法和区别却非常重要。理解它们的差异是编写高效、正确的 Java 程序的关键。 什么是 == ? 在 Java 中,== 是一个比较操作符,它用于比较两个变量的值...

    java中equals和==的比较.pdf

    本文将详细解析这两个操作符在Java中的区别,并通过具体的例子进行阐述。 1. `==` 操作符: `==` 在Java中主要用来比较基本类型(如int, char, boolean等)的值是否相等,以及引用类型(如Object实例)的引用是否...

    java中equals和==的区别.pdf

    本文将深入探讨这两个操作符在Java中的行为,特别是在处理引用类型,尤其是字符串(String)时的差异。 首先,我们要了解Java中的内存模型。基本数据类型(如int、char)的值直接存储在栈内存中,而引用类型的变量...

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

    在Java编程语言中,`equals()` 和 `==` 是两种常用的比较操作,它们在处理不同数据类型时有着明显的区别。`==` 操作符主要用于基本数据类型(如 int, double 等)以及引用类型的变量,它比较的是两个变量所指向的...

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

    本文将深入探讨这两个操作符在Java中的行为,特别是在处理值类型和引用类型时的不同。 首先,值类型如整型(int)、字符型(char)等在内存中的存储位置是在栈中,而引用类型如类实例(对象)则是存储在堆中。栈存储...

    equals与==之间的区别

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

    3 Java中关于==和equal的区别 以及equals()方法重写

    在 Java 中,== 操作符和 equals() 方法都是用于比较两个对象是否相等的,但它们的比较规则不同。== 操作符比较的是对象的引用,而 equals() 方法比较的是对象的内容。因此,在实际开发中,需要根据具体情况选择使用...

    java中equals和的比较.doc

    在 Java 编程中,equals 和 == 是两个常用的比较操作符,但它们之间存在着很大的区别。了解这两者的区别非常重要,因为它直接影响着程序的正确性和效率。 在 Java 中,有两种类型的变量:基本类型和引用类型。基本...

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

    在java基础开发中,“==”操作符和equals()方法是非常重要的比较操作符。正确地使用“==”操作符和equals()方法可以避免许多错误,提高程序的稳定性和可靠性。 9. java基础之“==”与equals()的应用场景: java基础...

    java中==与equal()区别

    或者说,== 操作符比较的是“栈”中的内容,而 equals() 比较的是“堆”中的内容。 对于 String 和 Integer 来说,由于他们特有的创建对象的方式。使用构造器和不使用构造器得到一个对象,== 方法比较所产生的结果...

    JAVA中equals和的区别.doc

    在Java编程语言中,`equals`方法和`==`操作符都是用来比较对象之间是否相等的重要工具。然而,它们在实现这一目标的方式上有着本质的区别。理解这些差异对于正确地进行对象比较至关重要。 #### 二、基本概念 1. **...

    equal与==区别

    在Java编程语言中,`equal`方法和`==`操作符都是用来比较对象之间是否相等的工具,但它们之间存在重要的差异。本文将从三个方面进行详细的对比分析:字符串的比较、非字符串对象的比较以及基本数据类型的比较。 ###...

Global site tag (gtag.js) - Google Analytics