java中可以用==来比较两个字符串是否相等吗

 我来答
写在枫叶上的故事
2018-12-03 · TA获得超过2.6万个赞
知道答主
回答量:164
采纳率:0%
帮助的人:2.4万
展开全部

JAVA比较两个字符串是否相等可以用equals方法或者是“==”。

equals 方法常常用来检测两个对象是否相等,即两个对象的内容是否相等,如果只是比较对象的内容,而不比较对象来源和功能类型时,常用此方法。

“==”常用于用于比较引用和比较基本数据类型时是否具有不同的功能,比较基本数据类型,如果两个值相同,则结果为true而在比较引用时,如果引用指向内存中的同一对象,结果为true。

扩展资料

equals 方法的特点:

1、自反性:x.equals(x)返回true;

2、对称性:若x.equals(y)为true,则y.equals(x)亦为true;

3、传递性:若x.equals(y)为true且y.equals(z)也为true,则x.equals(z)亦为true;

4、一致性:x.equals(y)的第一次调用为true,那么x.equals(y)的第二次、第三次、第n次调用也均为true,前提条件是没有修改x也没有修改y;

5、对于非空引用x,x.equals(null)永远返回为false。

参考资料来源:百度百科——equals

武小凝胡高
2019-01-11 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:30%
帮助的人:880万
展开全部
先说结论,不能。
两个对象进行比较,如果使用==符号,那么比较的是这两个对象的“引用”(类似C语言中指针的概念)。字符串比较,通常情况下比较的是字符串的值而非引用,不同的“引用”是可以对应相同值的,如果这时候用==比较,得出的结论是不相等,但是实际上它们的值是相等的。举例说明:
String a = new String("abc");
String b = new String("abc");
a == b; //false
a.equals(b) // true通过上面的例子可以看到,虽然两个字符串的值都是"abc",但是用==比较时,它们是不相等的,如果需要比较它们的值,应该使用equals()方法。
如果事情只是像这样的话,那么就简单了……可是还有个东西叫做“字符串常量池”,常量池的机制,会使得在某些情况下,==也能得出正确的结论,就不展开讲了,你只需要记得一点:对象比较的时候,==比较的是引用(指针),要比较对象的值,应当使用equals()方法。
参考:
《Java编程思想
第4版》机械工业出版社
P44-45
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
圭方方郁方
2019-11-21 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:29%
帮助的人:710万
展开全部
编程中,通常比较两个字符串是否相同的表达式是“==”,但在java中不能这么写。在java中,用的是equals();
例:a字符串和b和字符串比较:
if(a.equals(b)){
}
返回true
或false.
string
的equals
方法用于比较两个字符串是否相等。由于字符串是对象类型,所以不能用简单的“==”判断。而使用equals比较两个对象的内容是否相等。
注意:
equals()比较的是对象的内容(区分字母的大小写格式),但是如果使用“==”比较两个对象时,比较的是两个对象的内存地址,所以不相等。即使它们内容相等,但是不同对象的内存地址也是不相同的。对于java中的string对象的比较。这个你可以在网上搜索秒秒学,里面java基础教程有专门的章节来讲解string对象的比较的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
薛书琴窦名
游戏玩家

2019-04-03 · 非著名电竞玩家
知道大有可为答主
回答量:1.1万
采纳率:27%
帮助的人:672万
展开全部
不可以。
==比较字符串是否引用同一地址,如果2个字符串是同一个对象,那可以用==,如果不是同一个对象,只是比较内容是否一致,则不可以用==。
比如:
String s1 = "abc";
String s2 = "abc";
System.out.println(s1 == s2); // true,因为s1和s2是同一个字符串常量abc的引用,是同一个对象地址,所以相同
String s1 = new String("abc");
String s2 = new String("abc");
System.out.println(s1 == s2); // false,因为s1和s2是两个不同的对象,虽然字符串值都是abc,但是用==比较不相同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
仇雨筠Sm
2022-06-07
知道答主
回答量:2
采纳率:0%
帮助的人:758
展开全部
== 是比较的对象
.equal是比较字符串的值
一般来说最好用equal
java中String是特殊的存在,虽然不是基本类型,但是对它做了很多优化使他跟基本类型用法类似,你如果
String a = "abc",
String b = "abc",
a == b
是true。

但是
String a = new String("abc");
String b = new String("abc");
a == b
是false。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式