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