好程式設計師分享:Java面試題常見問題

好程式設計師IT發表於2019-06-11

  好程式設計師 分享: Java 面試 常見問題 ,面對 龐大的 java 面試題庫,想要刷完似乎不大可能,需要一點一點的積累 ,今天我們就 分享 一些 Java 面試 常見問題

 

  1 java 中會存在記憶體洩漏嗎,請簡單描述。

 

  答:會 ; 存在無用但可達的物件,這些物件不能被 GC 回收,導致耗費記憶體資源。

 

  2 、靜態變數和例項變數的區別 ?

 

  答:靜態變數也稱為類變數,歸全類共有,它不依賴於某個物件,可透過類名直接訪問 ; 而例項變數必須依存於某一例項,只能透過物件才能訪問到它。

 

  3 、是否可以從一個 static 方法內部發出對非 static 方法的呼叫 ?

 

  答:不可以 , 如果其中包含物件的 method() ,不能保證物件初始化。

 

  4 、寫 clone() 方法時,通常都有一行程式碼,是什麼 ?

 

  答: Clone 有預設行為: super.clone() ,他負責產生正確大小的空間,並逐位複製。

 

  5 GC 是什麼 ? 為什麼要有 GC?

 

  答: GC 是垃圾收集的意思 (Gabage Collection), 記憶體處理是程式設計人員容易出現問題的地方,忘記或者錯誤的記憶體回收會導致程式或系統的不穩定甚至崩潰, Java 提供的 GC 功能可以自動監測物件是否超過作用域從而達到自動回收記憶體的目的, Java 語言沒有提供釋放已分配記憶體的顯示操作方法。 Java 程式設計師不用擔心記憶體管理,因為垃圾收集器會自動進行管理。要請求垃圾收集,可以呼叫下面的方法之一: System.gc() Runtime.getRuntime().gc()

 

  6 、說出資料連線池的工作機制是什麼 ?

 

  答: J2EE 伺服器啟動時會建立一定數量的池連線,並一直維持不少於此數目的池連線。客戶端程式需要連線時,池驅動程式會返回一個未使用的池連線並將其表記為忙。如果當前沒有空閒連線,池驅動程式就新建一定數量的連線,新建連線的數量有配置引數決定。當使用的池連線呼叫完成後,池驅動程式將此連線表記為空閒,其他呼叫就可以使用這個連線。

 

  7 EJB 的啟用機制 ?

 

  答:以 Stateful Session Bean 為例:其 Cache 大小決定了記憶體中可以同時存在的 Bean 例項的數量,根據 MRU NRU 演算法,例項在啟用和去啟用狀態之間遷移,啟用機制是當客戶端呼叫某個 EJB 例項業務方法時,如果對應 EJB Object 發現自己沒有繫結對應的 Bean 例項則從其去啟用 Bean 儲存中 ( 透過序列化機制儲存例項 ) 回覆 ( 啟用 ) 此例項。狀態變遷前會呼叫對應的 ejbActive ejbPassivate 方法。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2647198/,如需轉載,請註明出處,否則將追究法律責任。

相關文章