字符串关于==与equals的比较

String S1=new String("abc");

String s2="abc";

String s3="abc";

String s4=new String ("abc");

s1==s2 ; false;

s2==s3; true;

s1==s4 ;false;

s1.equals(s2);true;

== 是比较两个字符串的地址是否相等,而直接声明的字符串(不是new出来的)是放在一个字符串常量池里面,相同的地址是一样的,所以S2=S3是true。

其它的new出来的字符串都是单独的一个对象,所以地址是不相等的。

但是equals相对于字符串是重写了的,所以比较的是内容。

时间: 2024-10-12 20:25:58

字符串关于==与equals的比较的相关文章

java中字符串比较==和equals

1 总体来说java中字符串的比较是==比较引用,equals 比较值的做法.(equals 对于其他引用类型比较的是地址,这是因为object的equals方法比较的是引用),但是不同的声明方法字符串的比较结果也是不同的.    例如:  String str1=new String("a");        String str2=new String("a");        str1==str2  输出false        str1.equals(str

java 与 c#的 中 字符串比较“==”与“equals”的差异

.net中,其字符串特有的驻留机制,保证了在同一进程中,相同字符序列的字符串,只有一个实例,这样能避免相同内容的字符串重复实例化,以减少性能开销. 先来回顾一下c#中的代码: public static void testString() { String s = "Abc"; String s1 = "abc"; String s2 = "abc"; Console.WriteLine("s1==s2 ? " + (s1 =

JAVA中字符串比較equals()和equalsIgnoreCase()的差别

1.使用equals( )方法比較两个字符串是否相等.它具有例如以下的一般形式: boolean equals(Object str) 这里str是一个用来与调用字符串(String)对象做比較的字符串(String)对象.假设两个字符串具有同样的字符和长度,它返回true,否则返回false.这样的比較是区分大写和小写的. 2.为了运行忽略大写和小写的比較,能够调用equalsIgnoreCase( )方法.当比較两个字符串时,它会觉得A-Z和a-z是一样的.其一般形式例如以下: boolea

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

<Stack Overflow 上 370万浏览量的一个问题:如何比较 Java 的字符串?> 比较详细的比较了==和equals方法的区别. 那借此机会,我就来梳理一下 Stack Overflow 上的高赞答案,我们来一起学习进步,打怪升级. “==”操作符用于比较两个引用(内存中的存放地址)是否相等,它们是否是同一个对象. .equals() 用于比较两个对象的内容是否相等. 原文地址:https://www.cnblogs.com/Tpf386/p/12076103.html

比较字符串内容用equals,比较字符串的地址用==,为什么?

new的字符串即使长得一样,住的地方也不一样(==)

JAVA 字符串比较: equals() 与 ==

关于字符串比较用equals还是用==,总结一下. 字符串为对象: 1."==" 所有"对象变量"用==作比较时比的是两个对象在堆中的引用. 2."equals()" 所有对象的equals方法继承自Object类的方法,而String重写了equals方法的比较算法,它比较的是字符串的内容,即在堆中的了符序列 3.特点 字符串是一种比较特殊的对象,这里的特殊指的是在运行期间,它的赋值直接改变引用(当然,任何对象的赋值都是直接改变的引用,只不过字

java重写equals方法(重点讲解)

为什么equals()方法要重写? 判断两个对象在逻辑上是否相等,如根据类的成员变量来判断两个类的实例是否相等,而继承Object中的equals方法只能判断两个引用变量是否是同一个对象.这样我们往往需要重写equals()方法. 我们向一个没有重复对象的集合中添加元素时,集合中存放的往往是对象,我们需要先判断集合中是否存在已知对象,这样就必须重写equals方法. 怎样重写equals()方法? 重写equals方法的要求: 1.自反性:对于任何非空引用x,x.equals(x)应该返回tru

Sting 字符串类

一.字符串类String 字符串(string)是由字符构成的一个序列. 1. 构建一个字符串 //直接将字符串直接量看成String对象. String message = "Weclome to JAVA"; //使用字符数组 char[] charArray = { 'G', 'o', 'o', 'd', ' ', 'D', 'a', 'y'}; String message = new String(charArray); String变量存储的是对String对象的引用,St

【转】Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例

原文地址:http://www.cnblogs.com/luankun0214/p/4421770.html 感谢网友的分享,记录下来只为学习. 1.重写equals方法实例   部分代码参考http://blog.csdn.net/wangloveall/article/details/7899948 重写equals方法的目的是判断两个对象的内容(内容可以有很多,比如同时比较姓名和年龄,同时相同的才是用一个对象)是否相同 如果不重写equals,那么比较的将是对象的引用是否指向同一块内存地址