當前位置:才華齋>計算機>java語言>

經典Java面試題之Java中Char型別的運算

java語言 閱讀(1.95W)

char在java中稱為“字元型”,佔2個位元組。本文是本站小編搜尋整理的關於經典Java面試題之Java中Char型別的運算,有需要的小夥伴可以參考一下,希望對大家有所幫助!想了解更多相關資訊請持續關注我們應屆畢業生考試網!

經典Java面試題之Java中Char型別的運算

  [面試原題]

假設y是字元型別,初始化值為‘b’,那麼以下語句輸出的結果是什麼?

A. tln(++y);

B. tln(y+1);

  [正確答案]

A.‘c’

B. 99

  [面試技術點]

字元在java中的運算。

  [解讀A]

char在java中稱為“字元型”,佔2個位元組。字元常量是用單引號括起的一個字元,且字元常量在記憶體中儲存的是該字元在Unicode字符集中的排序位置,即整數。

比如:

char y='b';

記憶體y中儲存的是字元’b’在Unicode字符集中的排序位置98。【可以通過語句tln((int)y);來獲取Unicode的排序位置。】因此上面的語句也可以寫成:

char y=98;

tln(++y);語句,先執行++y,結果為99,然後輸出對應位置的字元’c’。

  [解讀B]

博為峰小博老師在這裡要給大家說一個概念,java中的“向上相容”,即:不同資料型別的資料參與運算,資料型別要強制轉換,轉換的方向是:char->short->int->long->float->double。

在tln(y+1);這個語句中,y是char型別,1是int型別,所以把y強轉成int,然後運算結果是99,輸出也是int型別99。

  [擴充套件]

char是Java中的字元型別,與別的語言不同的是,char在Java中是16位的,因為Java用的是Unicode。不過8位的ASCII碼包含在Unicode中,是從0~127的。

Java中使用Unicode的'原因是,Java的Applet允許全世界範圍內執行,那它就需要一種可以表述人類所有語言的字元編碼Unicode。但是English,Spanish,German, French根本不需要這麼表示,所以它們其實採用ASCII碼會更高效。這中間就存在一個權衡問題。

因為char是16位的,採取的Unicode的編碼方式,所以char就有以下的初始化方式:

char c='a'; //字元,可以是漢字,因為是Unicode編碼,如char c=’我’,記憶體對應的unicode值為:25105。

char c=十進位制數,八進位制數,十六進位制數等等; //可以用整數賦值

char c='u數字'; //用字元的編碼值來初始化,如:char='