糯米文學吧

位置:首頁 > 計算機 > java語言

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

java語言1.92W

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='