課程
/移動開發
/Android
/Android攻城獅的第一門課(入門篇)
str!=null&&!str.equals("")怎么理解,不都是表示不為空的意思嗎
2017-04-17
源自:Android攻城獅的第一門課(入門篇) 21-6
正在回答
str!=null :str引用的值不為null, 也就是說實際上沒有引用一個String對象
!str.equals(""): str引用的對象是"",也就是空字符串
簡單畫個圖
在C/C++里, str其實是一個指針, null表示空指針, str==null表示該字符串指針沒有指向任何一個字符串. ?""表示是空字符串, 空字符串也是字符串, 也在內存中占有位置,?str.equals("")表示這個str指向了一個字符串, 且該字符串的內容是一個空字符串. ?
可以通過打印str的內存地址就可以看出null和""是不同的;
java也是類似的.
而且在C/C++中, 如果不先判斷str不為空就直接使用str的方法, 是會出錯的, 因為str還沒有被初始化為String類的實例;
舉報
想快速掌握Android應用開發基礎,選擇學習這門課程就對了。
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-07-23
str!=null :str引用的值不為null, 也就是說實際上沒有引用一個String對象
!str.equals(""): str引用的對象是"",也就是空字符串
簡單畫個圖
2017-04-17
在C/C++里, str其實是一個指針, null表示空指針, str==null表示該字符串指針沒有指向任何一個字符串. ?""表示是空字符串, 空字符串也是字符串, 也在內存中占有位置,?str.equals("")表示這個str指向了一個字符串, 且該字符串的內容是一個空字符串. ?
可以通過打印str的內存地址就可以看出null和""是不同的;
java也是類似的.
而且在C/C++中, 如果不先判斷str不為空就直接使用str的方法, 是會出錯的, 因為str還沒有被初始化為String類的實例;