1. 程式人生 > >JAVA面試700問(一)

JAVA面試700問(一)

原文地址 譯者:葉文海([email protected]

1、Java環境中的位元組碼是什麼?

  • 由Java 編譯器生成的一種程式碼。
  • 由JVM生成的一種程式碼。
  • Java原始檔(Java Source File)的別名。
  • 一種寫在類的例項方法中的程式碼。

答案:由Java 編譯器生成的一種程式碼。

2、什麼是Java垃圾回收機制?

  • 作業系統週期性的刪除系統中所有可用的Java檔案.
  • 自動刪除那些被程式引用但未被使用的包
  • 當一個物件的引用(references)不再存在,被這些物件佔用的記憶體會被自動的回收。
  • JVM檢查所有Java應用的輸出刪除所有不在有意義的輸出。

答案:當一個物件的引用(references)不再存在,被這些物件佔用的記憶體會被自動的回收。

Java小應用程式(Java Applet)跟Java應用程式(Java Application)有什麼區別?

  • Java應用程式通常情況下是可以被信任的程式,而Java小應用程式不是。
  • Java小應用程式必須在瀏覽器環境下執行。
  • Java小應用程式無法訪問計算機中的檔案。
  • 以上所有都是。

答案:以上所有都是。

3、在下面這段程式碼編譯和執行的時候:
submarine.dive(depth);
下面哪個答案是正確的?

  • depth肯定是int型別。
  • dive肯定是一個方法。
  • dive肯定是例項變數的名字。
  • submarine肯定是一個類名。

答案:dive肯定是一個方法。

4、下面哪個關於匿名內部類的說法是正確的?

  • 僅能繼承一個類或實現一個介面。
  • 僅能繼承一個類或實現多個介面。
  • 可以實現多個介面無論是否繼承了其他類。

答案:僅能繼承一個類或實現一個介面。(譯者注:給定的答案是”僅能繼承一個類或實現多個介面。“,但經過測試發現匿名內部類無法實現多個介面,正確答案應該是”僅能繼承一個類或實現一個介面“)

5、如果一個執行緒被定義為守護執行緒(daemon thread),那麼它必須宣告在下列哪個方法之前?

  • start方法。
  • run方法。
  • stop方法。
  • 以上都不是。

答案:start方法。

6、在下列什麼情況下你可能會使用Thread的yield方法?

  • 在當前執行緒呼叫來使得其他執行緒擁有同樣的或者更高的優先順序去執行。
  • 在處於等待狀態下的執行緒呼叫來使它能夠執行。
  • 讓一個執行緒擁有更高的執行優先順序。
  • 在當前執行緒呼叫並傳入一個引數表明讓哪個執行緒可以執行。

答案:在當前執行緒呼叫來使得其他執行緒擁有同樣的或者更高的優先順序去執行。

7、下面哪個是提示JVM進行垃圾回收的正確語法:

  • System.free();
  • System.setGarbageCollection();
  • System.out.gc();
  • System.gc();

答案:System.gc();

8、當子類中定義的方法與父類中定義的方法有同樣的方法簽名(譯者注:方法名+方法引數列表),那麼子類的方法是:

  • 過載(Overloading )。
  • 重寫(Overriding )。
  • 包裝(Packing )。
  • 以上都不是。

答案:重寫(Overriding )。

9、在AWT或Swing中,BoxLayout 佈局管理器是如何對元件進行佈局的?
1)從左至右
2)從上到下
3)從右到左
4)從下至上

  • 1。
  • 2。
  • 1和2。
  • 3和4。

答案:1和2。

10、不能有子類的類是什麼類:

  • 抽象(abstract)。
  • 父類(parent class)。
  • Final。
  • 以上都不是。

答案:Final

11、Swing元件裡面用到下面哪個設計模式:

  • MVC(Model view controller )。
  • 事件委託(Event delegation model)。
  • DOM(Document object model )。
  • 網路模式(network model)。

答案:MVC。

12、讓多個執行緒同時作用到同一個物件上並且能保證結果的可靠性的機制叫做:

  • 裝箱(Boxing)。
  • 非同步(Unsynchronized )。
  • 同步(synchronized)。
  • 以上都不是。

答案:同步(synchronized)。

13、java.util package包下的所有集合類都實現的是不同的介面

  • 正確。
  • 錯誤。

答案:正確。

14、DeflaterOutputStream和InflaterInputStream在哪個包下面?

  • java.io。
  • java.util。
  • java.io.zip。
  • java.util.zip。

答案:java.util.zip。

15、把記憶體中物件儲存到檔案的技術是:

  • 同步(synchronization )。
  • 序列化(serialization )。
  • zip壓縮。
  • doping。

答案:序列化(serialization )。

16、靜態(static)變數或瞬時(transient)變數不能被序列化

  • 正確。
  • 錯誤。

答案:正確。

17、javax.swing中的元件是用什麼語言開發的:

  • C++。
  • C。
  • pascal。
  • pure java。

答案:pure java

18、FileOutputStream 讀取的是什麼型別的資料:

  • character。
  • file。
  • bytes。
  • bit。

答案:bytes。

19、Java中所有帶緩衝機制的類的預設緩衝大小是多少?

  • 128 bytes。
  • 256 bytes。
  • 512 bytes。
  • 1024 bytes。

答案:512 bytes。