亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 Java Java面試題 java經(jīng)典面試題集錦(四)

java經(jīng)典面試題集錦(四)

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

java經(jīng)典面試題集錦(四)

一、反射機(jī)制的應(yīng)用場景

(相關(guān)教學(xué)建議:java面試題

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

  2. 與註解相結(jié)合的框架例如Retrofit

  3. #單純的反射機(jī)制應(yīng)用框架例如EventBus 2.x

  4. 動態(tài)產(chǎn)生類別框架例如Gson

二、什麼是多執(zhí)行緒?

多執(zhí)行緒,是指從軟體或硬體上實(shí)作多個執(zhí)行緒並發(fā)執(zhí)行的技術(shù)。?在一個程式中,這些獨(dú)立運(yùn)作的程式片段叫作“執(zhí)行緒”,利用它程式設(shè)計(jì)的概念就叫作“多執(zhí)行緒處理”。

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

java經(jīng)典面試題集錦(四)

主線程就是創(chuàng)建進(jìn)程中產(chǎn)生的第一個線程,也就是main函數(shù)對應(yīng)的線程。

(推薦學(xué)習(xí):java入門程式

三、說一下多執(zhí)行緒的好處?

1、多執(zhí)行緒的優(yōu)點(diǎn)

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

  • #執(zhí)行緒之間的切換相較於行程之間的切換需要作業(yè)系統(tǒng)做的工作很少

  • #執(zhí)行緒佔(zhàn)用的資源要比行程少很多

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

  • 等待慢速IO操作結(jié)束以後,程式可以執(zhí)行其他的運(yùn)算任務(wù)

  • #計(jì)算(CPU)密集型應(yīng)用,為了能在多處理器系統(tǒng)上運(yùn)行,將計(jì)算分解到多個線程中實(shí)現(xiàn)

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

2、多執(zhí)行緒的缺點(diǎn)

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

  • 健壯性降低(線程之間是缺乏保護(hù)性的。在一個多線程程式裡,因?yàn)闀r間上分配的細(xì)微差距或者是共享了一些不應(yīng)該共享的變數(shù)而造成不良影響的可能影響是很大的。)

  • 缺乏存取控制( 因?yàn)檫M(jìn)程是存取控制的基本粒度,在一個執(zhí)行緒中呼叫某些OS函數(shù)會對整個進(jìn)程造成影響。)

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

四、執(zhí)行緒和行程有什麼差別?

1、調(diào)度

進(jìn)程是作業(yè)系統(tǒng)分配資源的一個基本單位。執(zhí)行緒是 CPU調(diào)度的基本單位。

2、並發(fā)性

引入線程之後,不僅進(jìn)程之間是可以並發(fā)執(zhí)行的,而且在一個進(jìn)程之中的多個線程也是可以並發(fā)執(zhí)行的,甚至是允許一個進(jìn)程中的全部進(jìn)程並發(fā)執(zhí)行。

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

3、擁有資源

行程可以擁有資源,並且是系統(tǒng)擁有資源的基本單位 。執(zhí)行緒本身不擁有系統(tǒng)資源,僅有一些能保證獨(dú)立運(yùn)作 的資源,這塊資源的各個執(zhí)行緒私有的。

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

4、獨(dú)立性

在同一進(jìn)程中執(zhí)行緒的獨(dú)立性比在不同的進(jìn)程中獨(dú)立性要低很多 。

5、系統(tǒng)開銷

執(zhí)行緒切換的開銷低於進(jìn)程切換的開銷,

6、支援多處理機(jī)系統(tǒng)

對於傳統(tǒng)的進(jìn)程,也就是單執(zhí)行緒進(jìn)程,不管有多少個處理機(jī),進(jìn)程只能運(yùn)行在同一個處理機(jī)上面,但對於多執(zhí)行緒進(jìn)程,就可以將一個進(jìn)程中的多個執(zhí)行緒分配到多個處理機(jī)上面,使其並發(fā)執(zhí)行,加速了進(jìn)程的完成。

(影片教學(xué)推薦:java影片教學(xué)

五、行程和執(zhí)行緒的應(yīng)用場景

java經(jīng)典面試題集錦(四)

  • 需要頻繁建立銷毀優(yōu)先使用執(zhí)行緒。

  • 需要大量計(jì)算的優(yōu)先使用執(zhí)行緒。

  • 相關(guān)性較強(qiáng)的使用線程,相關(guān)性較弱使用進(jìn)程。

  • 可能要擴(kuò)展到多機(jī)分佈使用進(jìn)程,多核心分佈使用執(zhí)行緒。

#

以上是java經(jīng)典面試題集錦(四)的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
VSCODE設(shè)置。 JSON位置 VSCODE設(shè)置。 JSON位置 Aug 01, 2025 am 06:12 AM

settings.json文件位於用戶級或工作區(qū)級路徑,用於自定義VSCode設(shè)置。 1.用戶級路徑:Windows為C:\Users\\AppData\Roaming\Code\User\settings.json,macOS為/Users//Library/ApplicationSupport/Code/User/settings.json,Linux為/home//.config/Code/User/settings.json;2.工作區(qū)級路徑:項(xiàng)目根目錄下的.vscode/settings

如何使用JDBC處理Java的交易? 如何使用JDBC處理Java的交易? Aug 02, 2025 pm 12:29 PM

要正確處理JDBC事務(wù),必須先關(guān)閉自動提交模式,再執(zhí)行多個操作,最後根據(jù)結(jié)果提交或回滾;1.調(diào)用conn.setAutoCommit(false)以開始事務(wù);2.執(zhí)行多個SQL操作,如INSERT和UPDATE;3.若所有操作成功則調(diào)用conn.commit(),若發(fā)生異常則調(diào)用conn.rollback()確保數(shù)據(jù)一致性;同時應(yīng)使用try-with-resources管理資源,妥善處理異常並關(guān)閉連接,避免連接洩漏;此外建議使用連接池、設(shè)置保存點(diǎn)實(shí)現(xiàn)部分回滾,並保持事務(wù)盡可能短以提升性能。

在Java的掌握依賴注入春季和Guice 在Java的掌握依賴注入春季和Guice Aug 01, 2025 am 05:53 AM

依賴性(di)IsadesignpatternwhereObjectsReceivedenciesenciesExtern上,推廣looseSecouplingAndEaseerTestingThroughConstructor,setter,orfieldInjection.2.springfraMefringframeWorkSannotationsLikeLikeLike@component@component,@component,@service,@autowiredwithjava-service和@autowiredwithjava-ligatiredwithjava-lase-lightike

Python Itertools組合示例 Python Itertools組合示例 Jul 31, 2025 am 09:53 AM

itertools.combinations用於生成從可迭代對像中選取指定數(shù)量元素的所有不重複組合(順序無關(guān)),其用法包括:1.從列表中選2個元素組合,如('A','B')、('A','C')等,避免重複順序;2.對字符串取3個字符組合,如"abc"、"abd",適用於子序列生成;3.求兩數(shù)之和等於目標(biāo)值的組合,如1 5=6,簡化雙重循環(huán)邏輯;組合與排列的區(qū)別在於順序是否重要,combinations視AB與BA為相同,而permutations視為不同;

了解Java虛擬機(jī)(JVM)內(nèi)部 了解Java虛擬機(jī)(JVM)內(nèi)部 Aug 01, 2025 am 06:31 AM

TheJVMenablesJava’s"writeonce,runanywhere"capabilitybyexecutingbytecodethroughfourmaincomponents:1.TheClassLoaderSubsystemloads,links,andinitializes.classfilesusingbootstrap,extension,andapplicationclassloaders,ensuringsecureandlazyclassloa

如何使用Java的日曆? 如何使用Java的日曆? Aug 02, 2025 am 02:38 AM

使用java.time包中的類替代舊的Date和Calendar類;2.通過LocalDate、LocalDateTime和LocalTime獲取當(dāng)前日期時間;3.使用of()方法創(chuàng)建特定日期時間;4.利用plus/minus方法不可變地增減時間;5.使用ZonedDateTime和ZoneId處理時區(qū);6.通過DateTimeFormatter格式化和解析日期字符串;7.必要時通過Instant與舊日期類型兼容;現(xiàn)代Java中日期處理應(yīng)優(yōu)先使用java.timeAPI,它提供了清晰、不可變且線

Google Chrome無法打開本地文件 Google Chrome無法打開本地文件 Aug 01, 2025 am 05:24 AM

ChromecanopenlocalfileslikeHTMLandPDFsbyusing"Openfile"ordraggingthemintothebrowser;ensuretheaddressstartswithfile:///;2.SecurityrestrictionsblockAJAX,localStorage,andcross-folderaccessonfile://;usealocalserverlikepython-mhttp.server8000tor

如何使用Prometheus和Grafana監(jiān)視Java應(yīng)用程序 如何使用Prometheus和Grafana監(jiān)視Java應(yīng)用程序 Jul 31, 2025 am 09:42 AM

TomonitoraJavaapplicationwithPrometheusandGrafana,firstinstrumenttheappusingMicrometerbyaddingmicrometer-registry-prometheusandSpringBootActuatordependencies,thenexposethe/actuator/prometheusendpointviaconfigurationinapplication.yml.2.SetupPrometheus

See all articles