北京赛车pk10直播开奖
首頁
登錄 | 注冊

10道Java高級面試題整理(附答案)

這是我收集的10道高級Java面試問題列表。這些問題主要來自 Java 核心部分 ,不涉及 Java EE 相關問題。你可能知道這些棘手的 Java 問題的答案,或者覺得這些不足以挑戰你的 Java 知識,但這些問題都是容易在各種 Java 面試中被問到的,而且包括我的朋友和同事在內的許多程序員都覺得很難回答。

1. 為什么等待和通知是在 Object 類而不是 Thread 中聲明的?

一個棘手的 Java 問題,如果 Java編程語言不是你設計的,你怎么能回答這個問題呢。Java編程的常識和深入了解有助于回答這種棘手的 Java 核心方面的面試問題。

為什么 wait,notify 和 notifyAll 是在 Object 類中定義的而不是在 Thread 類中定義

這是有名的 Java 面試問題,招2~4年經驗的到高級 Java 開發人員面試都可能碰到。

這個問題的好在它能反映了面試者對等待通知機制的了解, 以及他對此主題的理解是否明確。就像為什么 Java 中不支持多繼承或者為什么 String 在 Java 中是 final 的問題一樣,這個問題也可能有多個答案。

為什么在 Object 類中定義 wait 和 notify 方法,每個人都能說出一些理由。 從我的面試經驗來看, wait 和 nofity 仍然是大多數Java 程序員最困惑的,特別是2到3年的開發人員,如果他們要求使用 wait 和 notify, 他們會很困惑。因此,如果你去參加 Java 面試,請確保對 wait 和 notify 機制有充分的了解,并且可以輕松地使用 wait 來編寫代碼,并通過生產者-消費者問題或實現阻塞隊列等了解通知的機制。

為什么等待和通知需要從同步塊或方法中調用, 以及 Java 中的 wait,sleep 和 yield 方法之間的差異,如果你還沒有讀過,你會覺得有趣。為何 wait,notify 和 notifyAll 屬于 Object 類? 為什么它們不應該在 Thread 類中? 以下是我認為有意義的一些想法:

1) wait 和 notify 不僅僅是普通方法或同步工具,更重要的是它們是 Java 中兩個線程之間的通信機制。對語言設計者而言, 如果不能通過 Java 關鍵字(例如 synchronized)實現通信此機制,同時又要確保這個機制對每個對象可用, 那么 Object 類則是的正確聲明位置。記住同步等待通知是兩個不同的領域,不要把它們看成是相同的或相關的。同步是提供互斥并確保 Java 類的線程安全,而 wait 和 notify 是兩個線程之間的通信機制

2) 每個對象都可上鎖,這是在 Object 類而不是 Thread 類中聲明 wait 和 notify 的另一個原因。

3) 在 Java 中為了進入代碼的臨界區,線程需要鎖定并等待鎖定,他們不知道哪些線程持有鎖,而只是知道鎖被某個線程持有, 并且他們應該等待取得鎖, 而不是去了解哪個線程在同步塊內,并請求它們釋放鎖定。

4) Java 是基于 Hoare 的監視器的思想。在Java中,所有對象都有一個監視器。

線程在監視器上等待,為執行等待,我們需要2個參數:

  • 一個線程
  • 一個監視器(任何對象)

在 Java 設計中,線程不能被指定,它總是運行當前代碼的線程。但是,我們可以指定監視器(這是我們稱之為等待的對象)。這是一個很好的設計,因為如果我們可以讓任何其他線程在所需的監視器上等待,這將導致“入侵”,導致在設計并發程序時會遇到困難。請記住,在 Java 中,所有在另一個線程的執行中侵入的操作都被棄用了(例如 stop 方法)。

2. 為什么Java中不支持多重繼承?

我發現這個 Java 核心問題很難回答,因為你的答案可能不會讓面試官滿意,在大多數情況下,面試官正在尋找答案中的關鍵點,如果你提到這些關鍵點,面試官會很高興。在 Java 中回答這種棘手問題的關鍵是準備好相關主題, 以應對后續的各種可能的問題。

這是非常經典的問題,與為什么 String 在 Java 中是不可變的很類似; 這兩個問題之間的相似之處在于它們主要是由 Java 創作者的設計決策使然。

為什么Java不支持多重繼承, 可以考慮以下兩點:

1)第一個原因是圍繞鉆石



2019 monjeep.com webmaster#monjeep.com
12 q. 0.008 s.
京ICP備10005923號
北京赛车pk10直播开奖
黑龙江十一选五计划 注册送18彩金的棋牌游戏 彩经网彩票走势图大全搜狗 mg手机游戏娱乐 betoo7足球即时比分 时时彩技巧与实战攻略 百变王牌 快乐扑克3预测 浙江体彩十一选五 哓游棋牌游戏大厅