搜尋此網誌

2014年4月19日 星期六

常見的Java面試問題與答案11-20

Q11. 甚麼是三元運算

A: 

透過boolean運算子來決定要指定哪一個值給變數.



例如:




public class HelloWorld
{
       
    public static void main(String[] args){
        int i =2 ;
        System.out.println((i > 2 ) ? "bigger" : "small or equal");
    }
}

Q12. Java有哪五種運算元

A: 

1. 算術運算元 : 用來做數學運算.

例如 : + , - , * , / , %(求餘數), ++ (i +=1), - - (i - =1)

2. 關係運算元 : 用來做關係比較.(變數的位址是否相等之類的比較)


例如 : == (相等), !=(不相等 ), > ,< ,<= ,>=

3. 位元運算 : 



例如 : &(all 1) ,| (1 or 0)  ,^, ~ 

4. 邏輯運算 :  邏輯(True or False)的比較




例如 :  &&(and), ||  (or), ! (not)

5. 指定運算元 :  用來指定變數值





例如 :  += , - =,*=,/=


Q13. 甚麼是預設的switch case,請舉例

A: 

在switch敘述句裡面 , 當沒有符合的case, 便會執行default case. default case只可以宣告一次 , 或者不宣告.



public class Hello {

static String str = "Hello";
public static void main(String[] args){

printMsgByOption(1);
printMsgByOption(11);
printMsgByOption(1);

}

private static void printMsgByOption(int option){
switch(option){
case 1:
System.out.println(str);
break;
default:
System.out.println("this is default case");
}
}

}

Q14. 在Java, 所有的類別都繼承自哪一個基礎類別

A: 

java.lang.Object

Q15. 在Java, main方法可以回傳任何資料嗎

A: 

不行 , 作為一個程式的進入點 , 是不會有回傳值的. 所以他一定被宣告為void.

Q16. 甚麼是Java的package, 它的重要性是甚麼

A: 

為了方便類別的找尋和使用 , 並且迴避了類別的命名衝突, 以及增加類別存取的控制,

通常會把有關連性的聯別綁進同一個package裡面.


Q17. 我們可以宣告一個抽象類別 , 但裡面卻沒有任何抽象方法嗎?

A: 

可以的 , 但是此類別還是無法實體化.

Q18. 在Java , 抽象類別和介面的不同點是?

A: 

主要的差別是 , Interface只可以擁有public且未實作的方法 , 但抽象類別可以擁有實作和尚未實

作的方法 , 存取權限可以是private , public 或其他的存取權限.

另一個重要的差別是, 類別必須實作Interface的所有方法. 而繼承抽象類別,並不一定要實作所有
抽象(Abstract)方法.

附帶一提 , 類別可以實作多個介面 , 但只可以繼承一個類別.

Q19. Import 一個package, 同時也會引入(Import)其下的次要package嗎?

A: 

不會的 , 如果要使用次要package的類別, 必須各別import.

Q20. 可以宣告main方法為private存取嗎?

A: 

main方法宣告為public是為了方便程式正確執行 , 方法如果宣告為private並不會有compile error,但

是會出現runtime error