搜尋此網誌

2014年4月10日 星期四

常見的Java面試問題與答案1-10


Q1. 內部類別(InnerClass)和子類別(SubClass)之間的區別是什麼?

A: 內部類別是崁入在另一個類別之中的類別,並且有存取所有外部類別的方法和變數的權限

子類別是繼承自另一個類別(父類別). 並且可以存取父類別的public protected存取修飾子的

方法和欄位.

Q2. Java的存取修飾子有哪些

A: 
public : 類別的方法,欄位,和類別本身 , 在程式碼的任何地方皆可存取.

protected: 類別的方法和欄位, 只有在package內或是package外的子類別才可以使用.

default(無任何修飾子) : 類別的方法和欄位只有在package內部的類別使用.

private: 類別的方法和欄位只有在類別本身內才可以使用.


Q3. 靜態(static)方法和變數的目的是甚麼

A: 當有多個物件需要共享方法和變數的時候 , 可以宣告為static . 但是要注意 , 因為宣告為static

之後 , 變數只有一份拷貝 , 因此任一此類別的物件都可更改變數值 , 如果不想要此靜態變數值

被改變, 可在前面加上final關鍵字.   


Q4. 甚麼是資料封裝 , 它的重要性是甚麼


A: 封裝可以把物件的屬性和方法隱藏在物件內部 , 只能透過物件的公開方法加以存取 , 達到

資料隱藏的目的. 良好的封裝可以增加程式碼的模組化能力, JavaBean的使用, 就是一個非常好

的例子. 物件間彼此獨立不相關 , 但是卻可透過公開介面使用彼此提供的功能.

Q5. 甚麼是獨體類別(Singleton Class) , 舉出一個實際的使用案例


A: 獨體類別 , 顧名思義, 它只可以有一個實體, 無法創建出第二個. 



常用的例子是資料庫的連線, 我們只希望透過一個實體,對資料庫連線, 不希望創建出多個實體



做資料庫連線的時候使用.



Q6. 描述Java的三種迴圈種類




A:  

1. For 迴圈 : 


   用在知道要重複執行多少次的時候.



2. While 迴圈 :

   用在某條件預先滿足的前提下 , 持續不斷的重複執行的時候.



3. Do.While 迴圈:

   和While迴圈很類似.,但是不同的地方在於, Do.While迴圈會在每次執行結束後,做條件的      判 斷

因此最少會執行一次..

Q7. 如何寫Java無限迴圈

A:  
For (;;)

Q8. continue和 break敘述式 , 不同點在哪裡


A:  
1. break : 


   執行迴圈若遇到break敘述 , 迴圈會立刻結束.

2. continue :

   執行迴圈若遇到continue敘述 , 則continue以後的程式碼會跳過 , 直接執行下一個迴圈的判斷.

如下:



public static void main(String[]args){
        for(int i = 0 ; i < 3 ; i++){
            if(i == 2)
            break;
            if(i == 0){
                continue;
            }
            System.out.println(i);
        }
        }

Q9. double和 float變數 , 在Java的不同點是?

A:  
 float占用4bytes的記憶體空間, double占用8bytes記憶體空間. float是單精確度十進位數字,double是倍精確度浮點數.

Q10. 甚麼是final關鍵字, 請舉例?

A:  

 Java利用final關鍵字來宣告常數. final宣告的變數值 , 一旦被賦予值之後 , 便不可再改變或賦值.

 private final int PI = 3.14 , 是以final來宣告圓周率為常數的例子.

當方法前面加上final宣告 , 此方法便不可再被子類別所覆寫.

當類別被宣告為final , 此類別便無法繼承.  好比String, Integer , 和其他的包裹類別(Wrapped Class)

寶寶命名網