1 public class Test{ 2 3 public static void main(){ 4 System.out.println(10+"\t"+"!"); 5 System.out.println(10+'\t'+"!");
6 }
7 }
這時你是不是認為兩個輸出是一樣的,都是10加上以個制表符再加上一個感嘆號,但實際上的輸出:
這時你就很懵逼呀,為什么第二個輸出這么奇怪呢?
很簡單,這其實是一個基本數據類型隱式轉換的結果
- 首先,Java基本數據類型有八大類:byte,(short,char),int,long,float,double,boolean;從小范圍到大范圍排序,boolean例外
- 可見當int類型的10加上char類型'\t'時,char類型的'\t'就會隱式的從char型轉到int型
- 而int類型的'\t'在十進制中代表數字9
- 所以用算術運算符+后,便得19
字符表
轉義字符
|
意義
|
ASCII碼值(十進制)
|
\a
|
響鈴(BEL)
|
007
|
\b
|
退格(BS) ,將當前位置移到前一列
|
008
|
\f
|
換頁(FF),將當前位置移到下頁開頭
|
012
|
\n
|
換行(LF) ,將當前位置移到下一行開頭
|
010
|
\r
|
回車(CR) ,將當前位置移到本行開頭
|
013
|
\t
|
水平制表(HT) (跳到下一個TAB位置)
|
009
|
\v
|
垂直制表(VT)
|
011
|
\\
|
代表一個反斜線字符''\'
|
092
|
\'
|
代表一個單引號(撇號)字符
|
039
|
\"
|
代表一個雙引號字符
|
034
|
\? | 代表一個問號 | 063 |
\0
|
空字符(NULL)
|
000
|
\ooo
|
1到3位八進制數所代表的任意字符
|
三位八進制
|
\xhh
|
1到2位十六進制所代表的任意字符
|
二位十六進制
|