JAVA初級工程師面試36問(三)

第十三問: 描述一下JVM加載class文件的原理機制?

 

   JVM中類的裝載是由類加載器(ClassLoader)和它的子類來實現的,Java中的類加載器是一個重要的Java運行時系統組件,它負責在運行時查找和裝入類文件中的類。類的加載是指把類的.class文件中的數據讀入到內存中,通常是創建一個字節數組讀入.class文件.

 

第十四問: 談談你對抽象類和接口的異同點?

 

      1.抽象類和接口都不能夠實例化,但可以定義抽象類和接口類型的引用。

       2.一個類如果繼承了某個抽象類或者實現了某個接口都需要對其中的抽象方法全部進行實現,否則該類仍然需要被聲明爲抽象類。

       3.接口比抽象類更加抽象,因爲抽象類中可以定義構造器,可以有抽象方法和具體方法,而接口中不能定義構造器而且其中的方法全部都是抽象方法。

       4.抽象類中的成員可以是private、默認、protected、public的,而接口中的成員全都是public的。抽象類中可以定義成員變量,而接口中定義的成員變量實際上都是常量。有抽象方法的類必須被聲明爲抽象類,而抽象類未必要有抽象方法。

 

第十五問: try{}catch{}finally{}在try裏面假如存在return語句,那finally{}裏的代碼會不會被執行.如何執行?

 

       會執行,但是是在方法返回調用者前執行。不過實際中 在finally中改變返回值的做法是很少你的,因爲如果存在finally代碼塊,try中的return語句不會立馬返回調用者,而是記錄下返回值待finally代碼塊執行完畢之後再向調用者返回其值,然後如果在finally中修改了返回值,就會返回修改後的值.

 

第十六問: 談談sleep()方法wait()方法,它們有什麼區別?

 

       1.sleep()方法(休眠)是線程類(Thread)的靜態方法,調用此方法會讓當前線程暫停執行指定的時間,將執行機會(CPU)讓給其他線程,但是對象的鎖依然保持,因此休眠時間結束後會自動恢復。

        2.wait()是Object類的方法,調用對象的wait()方法導致當前線程放棄對象的鎖(線程暫停執行),進入對象的等待池(wait pool),只有調用對象的notify()方法(或notifyAll()方法)時才能喚醒等待池中的線程進入等鎖池(lock pool),如果線程重新獲得對象的鎖就可以進入就緒狀態。(記住這個主要考察sleep 不會放棄鎖,  wait是放棄鎖)

 

第十七問: 事務的ACID是指什麼?


1.原子性(Atomic):事務中各項操作,要麼全做要麼全不做,任何一項操作的失敗都會導致整個事務的失敗;
2.一致性(Consistent):事務結束後系統狀態是一致的;
3.隔離性(Isolated):併發執行的事務彼此無法看到對方的中間狀態;
4. 持久性(Durable):事務完成後所做的改動都會被持久化,即使發生災難性的失敗。通過日誌和同步備份可以在故障發生後重建數據。

 

第十八問: 請簡單說明下轉發(forward)和重定向(redirect)的區別? 

 

       主要記住(forward地址欄不會發生變化,是服務器自己內部調用資源給你,  redirect地址欄會發生變化,是客戶端請求了兩次服務器,這個一般答出來就ok 了   其它的就是自己添加描述語言了 )


     1.forward是容器中控制權的轉向,是服務器請求資源,服務器直接訪問目標地址的URL,把那個URL 的響應內容讀取過來,然後把這些內容再發給瀏覽器,瀏覽器根本不知道服務器發送的內容是從哪兒來的,所以它的地址欄中還是原來的地址。

      2. redirect是服務器端根據邏輯,發送一個狀態碼,告訴瀏覽器重新去請求那個地址,因此從瀏覽器的地址欄中可以看到跳轉後的鏈接地址,很明顯redirect無法訪問到服務器保護起來資源,但是可以從一個網站redirect到其他網站。

forward更加高效,所以在滿足需要時儘量使用forward(通過調用RequestDispatcher對象的forward()方法,該對象可以通過ServletRequest對象的getRequestDispatcher()方法獲得),並且這樣也有助於隱藏實際的鏈接;在有些情況下,比如需要訪問一個其它服務器上的資源,則必須使用重定向(通過HttpServletResponse對象調用其sendRedirect()方法實現)。

 

 (溫馨提示:很多問題問的只要回答出最核心問題就行,面試官一般會從你回答的衆多內容中去獲取他要知道的 其它的描述性語言就是自己組裝了,要了就是顯得更實際,不那麼官方,不要,當然也沒有關係,不過儘量在回答問題時候不要太官方,不然顯得跟個背答案一樣.)

   

未完待續.....

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章