foreach循環后的比較問題
比較好奇,foreach循環后面
byte[]?b=s.getBytes();
for(byte?bt:b){
???if(bt=='a'){
???num++;
???}
???
???這兒的if后面這兩個比較為什么是相等的。。指向相同的地址嗎?還是。。但是‘a’又是單引號,比較的是基本類型,雖然是相互轉換的,感覺類型不同,意思是值相同嗎?比較好奇,foreach循環后面
byte[]?b=s.getBytes();
for(byte?bt:b){
???if(bt=='a'){
???num++;
???}
???
???這兒的if后面這兩個比較為什么是相等的。。指向相同的地址嗎?還是。。但是‘a’又是單引號,比較的是基本類型,雖然是相互轉換的,感覺類型不同,意思是值相同嗎?2017-03-17
舉報
2017-03-17
對于基本數據類型(int, double, byte,......),使用“==”比較的是它們的值;
而對于復合數據類型(類)的對象,使用“==”比較的是它們的地址/引用。
2017-03-17
恕我不能懂for為什么要這樣寫...?
java里 ==比對的是僅僅是 對象
具體詳見:http://www.cnblogs.com/zhxhdean/archive/2011/03/25/1995431.html