2 回答

阿晨1998
TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊
有區(qū)別 雖然結(jié)果是沒區(qū)別
您String str聲明了一個(gè)String類型的對(duì)象 如果String str="login" 就是定義了這個(gè)對(duì)象 此時(shí)在內(nèi)存中就會(huì)有str這個(gè)對(duì)象的內(nèi)存地址 即引用,而您后來出現(xiàn)了login 它同樣會(huì)需要在內(nèi)存中出現(xiàn)一個(gè)地方存儲(chǔ)login,于是java的String池就會(huì)找出login同樣值的另一個(gè)login地址,把這個(gè)login的地址指向池中的login的地址,所以就產(chǎn)生了用equals比對(duì)值。而"login".equals(str) 是把str的地址指向login所屬的地址 是反過來的 。

慕姐4208626
TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊
推薦使用"login".equals(str)
如果str為空,str.equals("login")會(huì)報(bào)空指針異常;第一個(gè)則可以避免
添加回答
舉報(bào)
0/150
提交
取消