- 相關(guān)推薦
經(jīng)典Java面試題之Java中Char類型的運算
char在java中稱為“字符型”,占2個字節(jié)。本文是百分網(wǎng)小編搜索整理的關(guān)于經(jīng)典Java面試題之Java中Char類型的運算,有需要的小伙伴可以參考一下,希望對大家有所幫助!想了解更多相關(guān)信息請持續(xù)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!
[面試原題]
假設(shè)y是字符類型,初始化值為‘b’,那么以下語句輸出的結(jié)果是什么?
A. System.out.println(++y);
B. System.out.println(y+1);
[正確答案]
A.‘c’
B. 99
[面試技術(shù)點]
字符在java中的運算。
[解讀A]
char在java中稱為“字符型”,占2個字節(jié)。字符常量是用單引號括起的一個字符,且字符常量在內(nèi)存中存儲的是該字符在Unicode字符集中的排序位置,即整數(shù)。
比如:
char y='b';
內(nèi)存y中存儲的是字符’b’在Unicode字符集中的排序位置98。【可以通過語句System.out.println((int)y);來獲取Unicode的排序位置。】因此上面的語句也可以寫成:
char y=98;
System.out.println(++y);語句,先執(zhí)行++y,結(jié)果為99,然后輸出對應(yīng)位置的字符’c’。
[解讀B]
博為峰小博老師在這里要給大家說一個概念,java中的“向上兼容”,即:不同數(shù)據(jù)類型的數(shù)據(jù)參與運算,數(shù)據(jù)類型要強制轉(zhuǎn)換,轉(zhuǎn)換的方向是:char->short->int->long->float->double。
在System.out.println(y+1);這個語句中,y是char類型,1是int類型,所以把y強轉(zhuǎn)成int,然后運算結(jié)果是99,輸出也是int類型99。
[擴展]
char是Java中的字符類型,與別的語言不同的是,char在Java中是16位的,因為Java用的是Unicode。不過8位的ASCII碼包含在Unicode中,是從0~127的。
Java中使用Unicode的原因是,Java的Applet允許全世界范圍內(nèi)運行,那它就需要一種可以表述人類所有語言的字符編碼Unicode。但是English,Spanish,German, French根本不需要這么表示,所以它們其實采用ASCII碼會更高效。這中間就存在一個權(quán)衡問題。
因為char是16位的,采取的Unicode的編碼方式,所以char就有以下的初始化方式:
char c='a'; //字符,可以是漢字,因為是Unicode編碼,如char c=’我’,內(nèi)存對應(yīng)的unicode值為:25105。
char c=十進(jìn)制數(shù),八進(jìn)制數(shù),十六進(jìn)制數(shù)等等; //可以用整數(shù)賦值
char c='\u數(shù)字'; //用字符的編碼值來初始化,如:char='\0',表示結(jié)束符,它的ascll碼是0,這句話的意思和 char c=0 是一個意思。
Unicode編碼表:
【經(jīng)典Java面試題之Java中Char類型的運算】相關(guān)文章:
java中的char占幾個字節(jié)03-29
Java 2.1 java基本類型的轉(zhuǎn)換和運算符05-29
Java中運算符的使用05-30
Java 變量類型02-28
java面試題05-20
Java面試題(精選)06-30
Java運算符02-03
java的數(shù)據(jù)類型03-31
Java 變量類型介紹03-18