JavaRush /Java Blog /Random-TW /面試中常被問到的棘手 Java 問題

面試中常被問到的棘手 Java 問題

在 Random-TW 群組發布
如果您曾經準備過Java 程式設計師 職位的面試或參加過任何考試(不一定是程式設計)以獲得證書,那麼您很可能已經注意到他們提出的問題非常具體。其中許多讓您思考語言的架構,有些是為深入了解而設計的。還有一些更像是謎題或專注於細微差別,如果不練習就很難感覺到。在本文中,開發人員Saraans Singh提供了幾個此類 Java 問題。當然有答案。 面試中常被問到的 Java 棘手問題 - 11. 如果將 return 或 System.exit() 語句放在 try/catch 區塊中會發生什麼事? 這是Java中一個非常流行的「追趕」問題。訣竅在於,許多程式設計師相信該區塊finally在任何情況下都會被執行。return這個問題透過在區塊中放置語句try/catch或從try/catch語句區塊呼叫來挑戰這個概念System.exit ()這個棘手問題的答案是:當語句放入區塊中時,該區塊finally將被執行,而從語句區塊中呼叫時,該區塊將不會被執行。 2. Java支援多重繼承嗎? 這是一個非常棘手的問題。面試官常說:如果C++可以支援直接多重繼承,為什麼Java不能? 答案比看起來要複雜一些,因為 Java 支援多型別繼承,因為其中的介面可以擴充其他介面。但Java語言不支援實作的多重繼承。 3.父類別中的方法拋出異常的情況下,是否可以被拋出異常的方法覆蓋 另一個棘手的問題與重載和覆蓋的概念有關。 答:您可以在重寫的方法中安全地拋出父類別異常,但不能對類型為受檢查的異常執行相同的操作。 4、如何保證執行緒能夠存取資源而不發生死鎖? 如果您不太擅長編寫多執行緒程式碼,那麼這個問題對您來說將非常棘手。即使對於沒有處理過死鎖和競爭條件的經驗豐富的程式設計師來說,這也可能具有挑戰性。這裡的技巧在於順序:可以透過按照與取得資源的相反順序釋放資源來防止死鎖。 5.類別和Java語言中的類別有什麼差別?returntry/catchtry/catchSystem.exit ()NullPointerExceptionRuntimeExceptionNullPointerException – RuntimeExceptionExceptionNNStringBufferStringBuilder 這是一個關於 Java 語言的經典問題,有些開發人員認為很棘手,而有些開發人員則認為非常簡單。該類別StringBuilder是在 JDK 1.5 中引入的,它們之間的唯一區別是該類別的方法StringBuffer(例如length()capacity()append()是同步的,而該類別的相應方法StringBuilder則不是。由於這種根本區別,字串連接StringBuilder速度更快StringBuffer。事實上,StringBuffer不建議使用,因為在 99% 的用例中,字串連接是在同一個執行緒上完成的。 6. 表達式 1.0/0.0 回傳什麼?會拋出異常或導致編譯錯誤嗎? 另一個關於班級的棘手問題Double。儘管 Java 開發人員知道簡單資料類型 double 和 class Double,但在執行浮點運算時,他們並沒有對Double.INFINITYNaN以及-0.0管理與它們相關的算術計算的規則給予足夠的關注。 這個問題的答案很簡單:ArithmeticException不會拋出異常,會回傳值Double.INFINITY7. 如果嘗試將HashMap一個鍵物件插入到一個已經存在的鍵物件中,會發生什麼情況? 這個棘手的問題是另一個常見問題的一部分:它們HashMap在 Java 中如何運作?HashMap是有關 Java 語言的令人困惑和棘手問題的熱門主題。 答案是,如果您嘗試將金鑰重新插入到 中HashMap,它將取代舊的金鑰,因為該類別HashMap不允許重複的金鑰。相同的金鑰意味著相同的雜湊碼,因此它最終會出現在雜湊段中的相同位置。基於Quora 的材料
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION