1. 程式人生 > >java面試基礎(一)

java面試基礎(一)

|| 轉換 har strong oat 裏的 方法 基本類型 操作

1.基本數據類型、封裝類和運算操作
(1)簡述 & 和 && ,以及 | 和 || 的區別。
———&和|是位運算符,不怎麽用,而&&和||是邏輯運算符(存在短路現象,所以也叫短路與、短路或),一般用在if、while、for等條件判斷裏。

(2)運行 short s1 = 1; s1 = s1 + 1; 會出現什麽結果?
錯! s1 + 1,s1是short類型,1是int型,s1會自動轉換為int型的1,與1相加後,得到int型的2,要向左側的short類型的s1看齊,即需要通過強制類型轉換。正確寫法:s1 = (short) (s1 + 1);

運行 short s1 = 1; s1 += 1; 又會出現什麽結果?
正確! 執行s1+=1;其實執行的是s1 = (short) (s1 + 1); 其中會有一個強制轉換的過程。

註:Java的基本數據類型轉換規則,大的數據類型轉換為小的數據類型需要強制轉換,反之可以自動轉換。賦值表達式等號兩側的轉換的規則是右側的向左側的看齊,即右側表達式要轉換到和左邊的類型一樣。

(3)用最優效率的方法算出2乘以8等於多少。
用位運算符:int i = 2 << 3;

(4)"==" 和 equals 方法有什麽區別?
"==" 比較地址
equals 判斷值是否相等

(5)Integer 和 int 的區別是什麽?

Integer是封裝類,其中包含了int 基本數據類型和針對int的一些操作。而int是基本數據類型。

(6)Math.round(11.5) 和 Math.round(-11.5) 分別等於多少?
分別是12、 -11 將括號裏的數+0.5之後再向下取整

(7)float 型 float f=3.4 是否正確?
不對,精度不準確,應該用強制類型轉換,如下所示:
float f = (float)3.4 或 float f = 3.6f


2.流程控制方面的
(1)switch 語句能否作用在byte、long、String上?
————a.switch裏可以用char,byte,short,int 這些基本類型,以及它們的封裝類

b.不能用long,double,float,boolean,包括它們的封裝類
c.jdk1.7和以上版本裏,可以使用字符串類型
d.switch中還可以使用枚舉類型

(2)在Java中,如何跳出當前的多重嵌套循環?
————用break 或 continue ,其中,break跳出整個循環,continue 是跳出當次循環

(3)while 和 do..while 有什麽區別?
————while 先判斷條件再執行循環體
do..while 先執行後判斷,多以同等條件下,do..while 會多執行一次

(4)你有沒有用過關鍵字goto?並簡述你的看法
————不建議使用,,因為它會破壞程序的結構,尤其會讓代碼一團槽,不能讀

java面試基礎(一)