課程
/后端開發
/Java
/Java入門第三季
字符與字符串可以使用==比較嗎?
2015-11-22
源自:Java入門第三季 2-3
正在回答
字符串不可以,字符可以。這主要是因為“==”和equals有如下的區別:
????==判斷的是二者是不是指向同一個內存空間。equals是判斷二者指向內存空間的值是否相同。也就是說,==是內存地址的比較,二equals是對字符串內容本身的比較。
????而在Java里面,每一個字符串都是String類型的對象,那怕他們的值相同,可是在內存里面,它們還是兩個具有不同內存地址的對象,所以此時不能用“==”,應該用equals。而對于char類型的變量,其本質上是一個int類型的變量(ASCII碼),其作為Java的基本類型之一,是為數不多的不具有對象這個概念的變量類型之一(除非用包裝類進行包裝),所以char類型是可以直接用“==”來進行判斷的。
悠宇 提問者
字符屬于基本數據類型 基本數據類型都是可以使用==來進行比較的? 字符串屬于引用數據類型,引用數據類型的比較一般都使用equals方法(部分需要重寫)來進行比較,具體原因見樓上
舉報
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
3 回答不是說StringBuilder類型的字符串可以更改嘛?
1 回答Java 中字符串
1 回答字符串,字符串
3 回答Java中的字符串
3 回答Java字符串代碼
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-11-22
字符串不可以,字符可以。這主要是因為“==”和equals有如下的區別:
????==判斷的是二者是不是指向同一個內存空間。equals是判斷二者指向內存空間的值是否相同。也就是說,==是內存地址的比較,二equals是對字符串內容本身的比較。
????而在Java里面,每一個字符串都是String類型的對象,那怕他們的值相同,可是在內存里面,它們還是兩個具有不同內存地址的對象,所以此時不能用“==”,應該用equals。而對于char類型的變量,其本質上是一個int類型的變量(ASCII碼),其作為Java的基本類型之一,是為數不多的不具有對象這個概念的變量類型之一(除非用包裝類進行包裝),所以char類型是可以直接用“==”來進行判斷的。
2015-11-22
字符屬于基本數據類型 基本數據類型都是可以使用==來進行比較的? 字符串屬于引用數據類型,引用數據類型的比較一般都使用equals方法(部分需要重寫)來進行比較,具體原因見樓上