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