常量類(lèi)型不一樣,分別為String和char的話,輸出結(jié)果不一樣,為什么呢?
將常量類(lèi)型設(shè)置為String的話:
public class HelloWorld {
public static void main(String[] args) {
final String GENDER = "男";
final String GENDER2 = "女";
? ? ? ? System.out.println(GENDER+GENDER2);
}
}
輸出結(jié)果很正常,是:“男女”;
但是如果類(lèi)型是char:
public class HelloWorld {
public static void main(String[] args) {
final char GENDER = '男';
final char GENDER2 = '女';
? ? ? ? System.out.println(GENDER+GENDER2);
}
}
輸出結(jié)果是很魔性的:52906
這是為什么呢,感覺(jué)好神奇,難道是編碼問(wèn)題?
2015-12-07
char相加是編碼相加
你需要寫(xiě)成System.out.println(""+GENDER+GENDER2),進(jìn)行一次強(qiáng)制轉(zhuǎn)換就是你要的結(jié)果了
2015-12-07
char本來(lái)就是int 類(lèi)型儲(chǔ)存的,+號(hào)在java有兩種含義,1是運(yùn)算 2字符串拼接
男女是拼接 52906是運(yùn)算
2015-12-07
而且你們看,要是將char類(lèi)型的兩個(gè)常量分別輸出就沒(méi)有問(wèn)題了,如下:
public static void main(String[] args) {
final char GENDER = '男';
final char GENDER2 = '女';
? ? ? ? System.out.println(GENDER);
? ? ? ? System.out.println(GENDER2);
}
輸出結(jié)果是:“男\(zhòng)n女”(\n是回車(chē)的意思)