搜尋
首頁JavaJava面試題java經典面試題集錦(四)

java經典面試題集錦(四)

Jul 09, 2020 pm 04:28 PM
java面試題

java經典面試題集錦(四)

一、反射機制的應用場景

(相關教學建議:java面試題

  1. 逆向程式碼,例如反編譯

  2. 與註解相結合的框架例如Retrofit

  3. #單純的反射機制應用框架例如EventBus 2.x

  4. 動態產生類別框架例如Gson

二、什麼是多執行緒?

多執行緒,是指從軟體或硬體上實作多個執行緒並發執行的技術。 在一個程式中,這些獨立運作的程式片段叫作“執行緒”,利用它程式設計的概念就叫作“多執行緒處理”。

具有多線程能力的電腦因有硬體支援而能夠在同一時間執行多於一個線程,進而提升整體處理效能。

java經典面試題集錦(四)

主線程就是創建進程中產生的第一個線程,也就是main函數對應的線程。

(推薦學習:java入門程式

三、說一下多執行緒的好處?

1、多執行緒的優點

  • 建立一個新執行緒的代價要比建立一個新行程小的多

  • #執行緒之間的切換相較於行程之間的切換需要作業系統做的工作很少

  • #執行緒佔用的資源要比行程少很多

  • 能充分利用多處理器的可並行數量

  • 等待慢速IO操作結束以後,程式可以執行其他的運算任務

  • #計算(CPU)密集型應用,為了能在多處理器系統上運行,將計算分解到多個線程中實現

  • IO密集型應用,為了提高效能,將IO操作重疊,執行緒可以等待不同的IO操作。

2、多執行緒的缺點

  • 效能損失( 一個運算密集型執行緒是很少被外部事件阻塞的,無法和其他執行緒共享同一個處理器,當計算密集型的執行緒的數量比可用的處理器多,那麼就有可能有很大的效能損失,這裡的效能損失是指增加了額外的同步和調度開銷,二可用資源不變。)

  • 健壯性降低(線程之間是缺乏保護性的。在一個多線程程式裡,因為時間上分配的細微差距或者是共享了一些不應該共享的變數而造成不良影響的可能影響是很大的。)

  • 缺乏存取控制( 因為進程是存取控制的基本粒度,在一個執行緒中呼叫某些OS函數會對整個進程造成影響。)

  • 程式設計難度提高(編寫和偵錯一個多執行緒程式比單執行緒困難的多。)

四、執行緒和行程有什麼差別?

1、調度

進程是作業系統分配資源的一個基本單位。執行緒是 CPU調度的基本單位。

2、並發性

引入線程之後,不僅進程之間是可以並發執行的,而且在一個進程之中的多個線程也是可以並發執行的,甚至是允許一個進程中的全部進程並發執行。

同樣,不同的行程中的執行緒也是可以並發執行的。使得OS有 更好的並發性,提高了資源的利用率和系統吞吐量。

3、擁有資源

行程可以擁有資源,並且是系統擁有資源的基本單位 。執行緒本身不擁有系統資源,僅有一些能保證獨立運作 的資源,這塊資源的各個執行緒私有的。

例如,執行緒ID、一組暫存器、堆疊、errno、訊號屏蔽字(一個行程中pending訊號只有一個,但是任一個執行緒都可以處理這個訊號)、調度優先權。

4、獨立性

在同一進程中執行緒的獨立性比在不同的進程中獨立性要低很多 。

5、系統開銷

執行緒切換的開銷低於進程切換的開銷,

6、支援多處理機系統

對於傳統的進程,也就是單執行緒進程,不管有多少個處理機,進程只能運行在同一個處理機上面,但對於多執行緒進程,就可以將一個進程中的多個執行緒分配到多個處理機上面,使其並發執行,加速了進程的完成。

(影片教學推薦:java影片教學

五、行程和執行緒的應用場景

java經典面試題集錦(四)

  • 需要頻繁建立銷毀優先使用執行緒。

  • 需要大量計算的優先使用執行緒。

  • 相關性較強的使用線程,相關性較弱使用進程。

  • 可能要擴展到多機分佈使用進程,多核心分佈使用執行緒。

#

以上是java經典面試題集錦(四)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:csdn。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。