java 中字符串的比较 == 和equals的区别

如题所述

Java中字符串比较时==和equals的区别
(2011-05-17 19:33:07)
转载▼
标签:
java

字符串

equals

it
分类: JavaSE

==是比较两个字符串引用的地址是否相同,即是否指向同一个对象,而equals方法则比较字符串的内容是否相同。
例如String a = "abc";
String b = "abc";
a == b返回true,a.equals(b)同样返回true,这是为什么呢?
原来程序在运行时有一个字符串池,创建字符串时会先查找池中是否有相应的字符串,如果已经存在的话只需把引用指向它即可,如果没有则新建一个。
上例中创建a时,会在字符串池中首先创建一个"abc",然后a指向它;创建b时,由于"abc"已经存在,b直接指向它即可。
若改为:String a = "abc";
String b = new String("abc");
则a == b返回false,a.equals(b)返回true。因为创建b时不管"abc"是否存在都会new一个新的"abc",从而a和b指向的字符创对象是不同的,因此返回false。
温馨提示:内容为网友见解,仅供参考
无其他回答

java 中字符串的比较 == 和equals的区别
==是比较两个字符串引用的地址是否相同,即是否指向同一个对象,而equals方法则比较字符串的内容是否相同。例如String a = "abc";String b = "abc";a == b返回true,a.equals(b)同样返回true,这是为什么呢?原来程序在运行时有一个字符串池,创建字符串时会先查找池中是否有相应的字符串,如果...

“==” 和 EQUALS 的区别是什么?
==和equals的区别有对象类型不同、比较的对象不同、运行速度不同。一、对象类型不同:1、equals():是超类Object中的方法。2、==:是操作符。二、比较的对象不同:1、equals():用来检测两个对象是否相等,即两个对象的内容是否相等。2、==:用于比较引用和比较基本数据类型时具有不同的功...

请问java中比较枚举类对象值相等是用==还是equals
用==;equals是比较两个字符串类型的数据是不是一致的。枚举类型都是用==的哈。

Java中比较两个字符串==和.equals()区别
在Java中,==和.equals()都是用于比较字符串是否相等的工具,但它们的运作原理有所不同。==比较的是两个字符串的引用地址,意味着它检查的是变量是否指向同一个内存位置。若两个字符串变量指向同一字符串常量池中的对象,==比较将返回真值;反之,则返回假值。.equals()方法则比较的是字符串的内容。

Java中==和equal有什么区别
Java中==和equal的区别为:1、== 表示 判断2个变量或对象实例是否指向同一个内存空间,equals()表示 判断2个变量或对象实例所指向的内存空间的值是否相同。2、== 表示 对内存地址进行比较,equals()表示 对字符串的内容进行比较。3、== 表示引用是否相同,equals() 表示值是否相同。

Java中关于==和equal的区别 以及equals方法重写
== 和 Equals 的区别 1. == 是一个运算符。2.Equals则是string对象的方法,可以.(点)出来。我们比较无非就是这两种 1、基本数据类型比较 2、引用对象比较 1、基本数据类型比较 ==和Equals都比较两个值是否相等。相等为true 否则为false;2、引用对象比较 ==和Equals都是比较栈内存中的地址...

equals()和==的区别
`equals`是一个方法,用于比较对象的值。默认情况下,`equals`方法的行为与`==`操作符相同,即比较对象的内存地址。但是,许多类重写了这个方法,使其比较对象的实际内容或值。例如,对于String类,如果两个字符串的内容相同,即使它们在内存中的位置不同,也会返回true。3. 区别:核心区别在于`==`...

java==和equals的区别
1、java中equals和==的区别 值类型是存储在内存中的堆栈(简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。2、==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。3、equals操作表示的两个...

equal 和 == 的区别
equals:equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的equals方法返回的却是==的判断。String s="abce"是一种非常特殊的形式,和new 有本质的区别。它是java...

== 和 equals 的区别是什么?
在Java中,“==”和“equals()”的区别如下:- “==”是比较运算符,用于比较两个变量或实例是否指向同一个内存空间,即比较它们的地址是否相同。对于基本数据类型(如short、int、long、float、double),只能使用“==”,因为这些基本类型的变量没有重写equals()方法。对于引用类型的变量来说(例如...

相似回答