JAVA中equals()的用法问题

定义一个Stringstr;请问str.equals("login")与"login".equals(str)有什么区别?... 定义一个String str;
请问str.equals("login")与"login".equals(str)有什么区别?
展开
 我来答
kid_jy
2012-02-04 · TA获得超过793个赞
知道小有建树答主
回答量:1362
采纳率:0%
帮助的人:1278万
展开全部
有区别 虽然结果是没区别
您String str声明了一个String类型的对象 如果String str="login" 就是定义了这个对象 此时在内存中就会有str这个对象的内存地址 即引用,而您后来出现了login 它同样会需要在内存中出现一个地方存储login,于是java的String池就会找出login同样值的另一个login地址,把这个login的地址指向池中的login的地址,所以就产生了用equals比对值。而"login".equals(str) 是把str的地址指向login所属的地址 是反过来的 。
Jcuckoo
推荐于2016-06-04 · TA获得超过501个赞
知道小有建树答主
回答量:702
采纳率:0%
帮助的人:294万
展开全部
推荐使用"login".equals(str)
如果str为空,str.equals("login")会报空指针异常;第一个则可以避免
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
顺晓
2012-02-04 · TA获得超过640个赞
知道小有建树答主
回答量:981
采纳率:0%
帮助的人:641万
展开全部
两者都是字符串比较,前者可以防止空指针异常。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bfjww
2012-02-04 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:137
采纳率:0%
帮助的人:61.9万
展开全部
equals方法只是用来比较前后值的内容是否一样。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
日暮不见他麻麻
2018-07-16
知道答主
回答量:2
采纳率:0%
帮助的人:1569
引用jcuckoo的回答:
推荐使用"login".equals(str)
如果str为空,str.equals("login")会报空指针异常;第一个则可以避免
展开全部
答者笔误,后者可以避免空指针异常。
后者等效于 str!=null && str.equals("login")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式