java 两个字符串 为什么相等

 我来答
檀时芳夔霜
2019-09-16 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:29%
帮助的人:1246万
展开全部
一般字符串或者数字相等比较的都是内容,只要内容相同就相等了。你可以看下equals和==的区别,分清就可以了。注意下,如果是两个对象的比较还会比较地址值。
java中equals和==的区别
值类型是存储在内存中的堆栈(简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
1,==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
2,equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
3,==比较的是2个对象的地址,而equals比较的是2个对象的内容。
显然,当equals为true时,==不一定为true.
4,常用的比较:字符串比较相同使用equals,数字比较使用==。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
覃秀梅牢黛
2019-03-09 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:33%
帮助的人:862万
展开全部
equals()用于检测对象的值,即检测对象所引用的内部数据的值。只能用于引用类型。
[br/]
==
用于检测对象引用自身,是否指向同一块内存地址。可用于基本类型,也可以用于引用类型。当用于引用类型时,两边的类型必须一致~
[br/]
[br/]
默认情况下,equals()

==
的返回结果是一样的,但是有些类覆盖了equals()。这些类是:string
类,string对象在代表相同字符串时相等。equals()返回真。
[br/]
[br/]
boolean对象在值相同时相等。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式