面對龐大的java面試題庫,想要刷完似乎不大可能,需要一點一點的積累,今天我們就分享一些Java面試題常見問題 1、java 中會存在內(nèi)存泄漏嗎,請簡單描述。 答:會;存在無用但可達的對象,這些對象不能被GC 回收,導致耗費內(nèi)存資源。 2、靜態(tài)變量和實例變量的區(qū)別? 答:靜態(tài)變量也稱為類變量,歸全類共有,它不依賴于某個對象,可通過類名直接訪問;而實例變量必須依存于某一實例,只能通過對象才能訪問到它。 3、是否可以從一個static 方法內(nèi)部發(fā)出對非static 方法的調(diào)用? 答:不可以,如果其中包含對象的method(),不能保證對象初始化。 4、寫clone()方法時,通常都有一行代碼,是什么? 答:Clone 有缺省行為:super.clone(),他負責產(chǎn)生正確大小的空間,并逐位復制。 5、GC 是什么? 為什么要有GC? 答:GC 是垃圾收集的意思(Gabage Collection),內(nèi)存處理是編程人員容易出現(xiàn)問題的地方,忘記或者錯誤的內(nèi)存回收會導致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java 提供的GC 功能可以自動監(jiān)測對象是否超過作用域從而達到自動回收內(nèi)存的目的,Java 語言沒有提供釋放已分配內(nèi)存的顯示操作方法。Java 程序員不用擔心內(nèi)存管理,因為垃圾收集器會自動進行管理。要請求垃圾收集,可以調(diào)用下面的方法之一:System.gc() 或Runtime.getRuntime().gc() 。 6、說出數(shù)據(jù)連接池的工作機制是什么? 答:J2EE 服務(wù)器啟動時會建立一定數(shù)量的池連接,并一直維持不少于此數(shù)目的池連接??蛻舳顺绦蛐枰B接時,池驅(qū)動程序會返回一個未使用的池連接并將其表記為忙。如果當前沒有空閑連接,池驅(qū)動程序就新建一定數(shù)量的連接,新建連接的數(shù)量有配置參數(shù)決定。當使用的池連接調(diào)用完成后,池驅(qū)動程序?qū)⒋诉B接表記為空閑,其他調(diào)用就可以使用這個連接。 7、EJB 的激活機制? 答:以Stateful Session Bean 為例:其Cache 大小決定了內(nèi)存中可以同時存在的Bean 實例的數(shù)量,根據(jù)MRU 或NRU 算法,實例在激活和去激活狀態(tài)之間遷移,激活機制是當客戶端調(diào)用某個EJB 實例業(yè)務(wù)方法時,如果對應(yīng)EJB Object發(fā)現(xiàn)自己沒有綁定對應(yīng)的Bean 實例則從其去激活Bean 存儲中(通過序列化機制存儲實例)回復(激活)此實例。狀態(tài)變遷前會調(diào)用對應(yīng)的ejbActive 和ejbPassivate 方法。 |
|
來自: 好程序員IT > 《Java培訓教程》