首頁 Java Java面試題 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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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.能量晶體解釋及其做什麼(黃色晶體)
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Java 中的完美數 Java 中的完美數 Aug 30, 2024 pm 04:28 PM

Java 完美數指南。這裡我們討論定義,如何在 Java 中檢查完美數?

Java 中的隨機數產生器 Java 中的隨機數產生器 Aug 30, 2024 pm 04:27 PM

Java 隨機數產生器指南。在這裡,我們透過範例討論 Java 中的函數,並透過範例討論兩個不同的生成器。

Java中的Weka Java中的Weka Aug 30, 2024 pm 04:28 PM

Java 版 Weka 指南。這裡我們透過範例討論簡介、如何使用 weka java、平台類型和優點。

Java 中的史密斯數 Java 中的史密斯數 Aug 30, 2024 pm 04:28 PM

Java 史密斯數指南。這裡我們討論定義,如何在Java中檢查史密斯號?帶有程式碼實現的範例。

Java Spring 面試題 Java Spring 面試題 Aug 30, 2024 pm 04:29 PM

在本文中,我們保留了最常被問到的 Java Spring 面試問題及其詳細答案。這樣你就可以順利通過面試。

突破或從Java 8流返回? 突破或從Java 8流返回? Feb 07, 2025 pm 12:09 PM

Java 8引入了Stream API,提供了一種強大且表達力豐富的處理數據集合的方式。然而,使用Stream時,一個常見問題是:如何從forEach操作中中斷或返回? 傳統循環允許提前中斷或返回,但Stream的forEach方法並不直接支持這種方式。本文將解釋原因,並探討在Stream處理系統中實現提前終止的替代方法。 延伸閱讀: Java Stream API改進 理解Stream forEach forEach方法是一個終端操作,它對Stream中的每個元素執行一個操作。它的設計意圖是處

Java 中的時間戳至今 Java 中的時間戳至今 Aug 30, 2024 pm 04:28 PM

Java 中的時間戳記到日期指南。這裡我們也結合範例討論了介紹以及如何在java中將時間戳記轉換為日期。

創造未來:零基礎的 Java 編程 創造未來:零基礎的 Java 編程 Oct 13, 2024 pm 01:32 PM

Java是熱門程式語言,適合初學者和經驗豐富的開發者學習。本教學從基礎概念出發,逐步深入解說進階主題。安裝Java開發工具包後,可透過建立簡單的「Hello,World!」程式來實踐程式設計。理解程式碼後,使用命令提示字元編譯並執行程序,控制台上將輸出「Hello,World!」。學習Java開啟了程式設計之旅,隨著掌握程度加深,可創建更複雜的應用程式。

See all articles