阿里巴巴面試題目集合

edagarli發表於2014-03-17

1.java異常機制的原理與應用答:

每當程式出現異常以後,如果程式沒有進行相應的處理,則程式就會出現中斷現象。實際上,產生了異常以後,jvm會丟擲一個異常類的例項化物件,

如果此時使用了try語句捕獲的話,則可以進行異常的處理。否則,交給JVM進行處理。當try語句捕獲異常之後,將與catch語句的異常型別進行匹配,如果匹配成功則執行catch內的語句。簡單的應用:在所以throws語句的地方加入try-catch。標準應用:try-catch-finally-throw-throws一起使用。

2.垃圾回收部機制的優點答:釋放無用的物件所佔用的空間。方式:自動回收,手動回收。使用System.gc(),實際上呼叫Runtime.getRuntime().gc()

3. Error與Exception區別答:Error是jvm進行處理,是jvm出錯exception是可以由程式處理的,可以用try-catch捕獲的

4. final,finally,finallize答:final定義的變數的值不能改變,定義的方法不能被覆蓋,定義的類不能被繼承finally是異常的統一出口,finallize是垃圾回收前的收尾工作,是Object類定義的

5. Anonymous Inner Class是否可以extends,是否可以implements Interface答:允許繼承和實現,因為匿名內部類就是在抽象類和介面的基礎上發展起來的

6. Static Nested Class 與Inner Class的區別答:使用Static定義的Class就是外部類,可以通過外部類. 內部類直接訪問而Inner Class是不能被外部訪問的,只能通過外部類的例項再找到內部類例項。

7. HashMap and HashTable?答:HashMap:1) released in jdk 1.2,new Class 2)採用非同步處理方式,效能較高,是非執行緒安全的 3)允許nullHashTable:1)released in jdk 1.0 ,old Class 2)採用同步處理方式,效能低,是執行緒安全的3)不允許null

8. assert代表什麼?答:asserts是jdk 1.4之後釋出的新關鍵字,表示斷言,即程式執行到某個地方肯定是預計的值,一般開發很少使用。要使用assert,必須加上 -ea引數

9. gc是什麼?答:gc是garbage collection,垃圾回收,使用gc可以進行垃圾空間的釋放

10. String s = new String("xyz")產生了幾個物件?答:一個匿名物件xyz,在棧空間內。一個new例項化的物件,在堆空間內。

11. sleep() and wait()?答:sleep()是Thread類定義方法,表示執行緒的休眠,可以自動喚醒wait()方法是Object類定義的方法,需要手動notify()和notifyAll()//sleep()不釋放資源,wait()釋放資源

12. java中存在goto,但不能使用

13.陣列有沒有length(),String有沒有length()?答:陣列有length屬性,String有length()

14. Overload與Override的區別答:Overload:過載 |- 在一個類中定義的若干方法 |- 所有的方法名相同,但引數型別或個數不同 |- 只有引數有關,與返回型別無關Override:覆寫 |- 在繼承的關係中 |- 子類定義了父類同名的方法,引數型別或個數最好完全一樣。 |- 訪問許可權不能更嚴格

15. Set裡的元素不能重複,用什麼方法區分?==與equals()方法的區別答:set裡的元素是不能重複的,用iterator()方法來區分重複與否,==屬於地址比較, ==用於比較引用和比較基本資料型別時具有不同的功能: 比較基本資料型別,如果兩個值相同,則結果為true 而在比較引用時,如果引用指向記憶體中的同一物件,結果為true

16. 列出常見的 runtime exception答:NumberFormatException/ArrayOutIndexofBoundException/NullPointerException/ClassCastException

















相關文章