`

[轉]java中String的“==”和equals判断相等性

 
阅读更多
http://blog.csdn.net/liucheng2009/article/details/6656940
https://www.cnblogs.com/zxxshare/p/6364054.html


回顾java基础知识时,无意中看到String字符串的判断相等,自己也被绕了一下,写下来权当记录一下。

public static void main(String[] args) {
  String a="abc";
  String b="abc";
  if(a==b){
    System.out.println("a==b");
  }else{
    System.out.println("a!=b");
  }
}


看到这段代码,我的第一反应是输出:"a!=b",但是运行后是"a==b",恩,什么鬼,我混乱了。。。



在java中字符串的值是不可更改的,这两个相同的值在内存中存了一份,指向了同一个对象。"=="比较的是两个对象的内存地址,所以输出的结果是"a==b"。



public static void main(String[] args) {
  String a= new String("abc");
  String b= new String("abc");
  if(a==b){
    System.out.println("a==b");
  }else{
    System.out.println("a!=b");
  }
}


但是如果是这种情况的话,那就肯定是"a!=b"了,new String 定义了两个内存地址,指向了不同的对象,"=="比较就肯定是"a!=b"。

在这里就可以用equal来比较了,equal比较的是对象的内容是否相等。

有时候这种小的细节上面,之前根本就没有注意到,只是在开发过程中发现,哦,这样可能不对,换个方法呗或者百度下啥原因,开发完,这些也就忘到脑后,也没有记录下来的习惯,希望今年能把这些细节给记录下来,提醒自己。
分享到:
评论

相关推荐

    Java中的==和equals区别

    在Java编程中,比较对象的相等性是一个常见的需求,但很多初学者对于`==`运算符与`equals`方法的区别容易混淆。本文将深入探讨两者之间的差异,以及它们在不同场景下的应用。 #### `==` 运算符 `==`运算符主要用于...

    java中equals和==的区别

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

    String中==与equals区别验证

    在Java编程语言中,`==` 运算符与 `equals()` 方法被广泛用于比较对象,尤其是当处理字符串(`String` 类)时。这两者之间的区别是理解Java内存管理和对象引用的关键。以下是对给定代码片段中所展示概念的详细解析。...

    java中的==和equals()方法1

    在Java编程语言中,了解如何正确使用`==`和`equals()`方法是非常关键的,因为它们在比较对象和基本类型时有不同的行为。下面将详细解释这两个方法的工作原理、使用场景以及一些常见误区。 首先,`==`运算符主要用于...

    ==和equals的区别

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

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

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

    Java中String判断值为null或空及地址是否相等的问题

    本文主要讨论了如何正确判断Java中的String对象是否为null、空值("")以及它们的地址是否相等。在处理字符串时,了解这些概念对于避免程序出错至关重要。 首先,我们需要区分`null`和空字符串`""`。`null`表示变量...

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

    Java 中关于 == 和 equal 的区别 及其 equals() 方法重写 Java 语言是 Sun 公司的开发成果,其主要特点是可以执行强,与平台的无关性使其实用性更强。但是 Java 中的 == 与 equal 是有区别的。 == 操作符是 Java ...

    java中equals和==的区别.doc

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

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

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

    ==与equals的比较

    "Java中的==和equals方法比较" 在Java中,`==`和`equals`是两种不同的比较方法,前者比较引用地址,而后者比较对象的实际内容。 首先,让我们来看看`==`运算符的用法。`==`运算符可以用来比较基本数据类型和引用...

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

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

    Java常见笔试、面试题目深度剖析 相等性(==及equals方法)详解

    总结来说,Java中的相等性涉及到“==”运算符和equals()方法的使用。前者比较基本类型值或引用的地址,后者则比较对象的内容。对于自定义类,重写equals()和hashCode()方法是必要的,以确保对象的比较逻辑正确无误。...

    Java中==符号与equals()的使用详解(测试两个变量是否相等)

    在Java中,使用==符号和equals()方法可以判断两个变量是否相等,但是它们的使用方法和应用场景是不同的。使用==符号可以判断两个基本类型变量是否相等,而使用equals()方法可以判断两个对象是否相等。同时,equals()...

    java 中String.equals和==的比较

    Java 中 String.equals 和 == 的比较 Java 中 String.equals 和 == 的比较是 Java 编程语言中一个常见的概念,但是一些初学者容易混淆这两个概念。下面我们将详细介绍 Java 中 String.equals 和 == 的比较。 ...

    浅谈java 中equals和==的区别

    在Java编程语言中,`equals()` 和 `==` 运算符经常被用来比较对象,但它们之间存在着显著的区别。理解这些差异对于编写正确、健壮的代码至关重要。以下是关于 `equals()` 和 `==` 在Java中的详细解释。 首先,`==` ...

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

    在Java编程语言中,字符串是比较常见的数据类型,用于存储文本信息。在处理字符串时,我们经常需要比较两个字符串是否相等。...通过了解这些基础知识,开发者可以更好地处理和比较Java中的字符串。

    Java中==与equals的区别小结

    在Java编程语言中,了解`==`和`equals()`的区别是非常重要的,这涉及到对基本类型和对象的正确比较。下面我们将详细探讨这两个操作符的工作原理及其在不同情况下的使用。 首先,`==`操作符主要用于比较基本类型的...

    == and equals() 的比较 绝对值得看

    在Java编程语言中,了解`==`和`equals()`的区别是非常关键的,因为它们在处理不同类型的数据时有不同的行为。这两个运算符在比较基本数据类型(如int、char)时表现相同,但当涉及到对象时,它们的行为就有所不同。 ...

Global site tag (gtag.js) - Google Analytics