亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

str!=null&&!str.equals("") 怎么理解

str!=null&&!str.equals("")怎么理解,不都是表示不為空的意思嗎

正在回答

2 回答

str!=null :str引用的值不為null, 也就是說實際上沒有引用一個String對象

!str.equals(""): str引用的對象是"",也就是空字符串

簡單畫個圖

http://img1.sycdn.imooc.com//5973f28200013c0604790326.jpg


0 回復 有任何疑惑可以回復我~

在C/C++里, str其實是一個指針, null表示空指針, str==null表示該字符串指針沒有指向任何一個字符串. ?""表示是空字符串, 空字符串也是字符串, 也在內存中占有位置,?str.equals("")表示這個str指向了一個字符串, 且該字符串的內容是一個空字符串. ?

可以通過打印str的內存地址就可以看出null和""是不同的;

java也是類似的.

而且在C/C++中, 如果不先判斷str不為空就直接使用str的方法, 是會出錯的, 因為str還沒有被初始化為String類的實例;

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Android攻城獅的第一門課(入門篇)
  • 參與學習       312492    人
  • 解答問題       4931    個

想快速掌握Android應用開發基礎,選擇學習這門課程就對了。

進入課程

str!=null&&!str.equals("") 怎么理解

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號