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

首頁 Java Java面試題 2020全新Java面試題-容器(二)

2020全新Java面試題-容器(二)

Apr 11, 2020 pm 03:42 PM
java 容器

2020全新Java面試題-容器(二)

1、說一下 HashMap 的實作原理?

HashMap概述: HashMap是基於雜湊表的Map介面的非同步實作。此實作提供所有可選的映射操作,並允許使用null值和null鍵。此類不保證映射的順序,特別是它不保證該順序恆久不變。

HashMap的資料結(jié)構(gòu): 在java程式語言中,最基本的結(jié)構(gòu)就是兩種,一個是數(shù)組,另外一個是模擬指標(引用),所有的資料結(jié)構(gòu)都可以用這兩個基本結(jié)構(gòu)來建構(gòu)的,HashMap也不例外。 HashMap實際上是一個「鍊錶散列」的資料結(jié)構(gòu),即數(shù)組和鍊錶的結(jié)合體。

(推薦教學(xué):java快速入門

當(dāng)我們往Hashmap中put元素時,首先根據(jù)key的hashcode重新計算hash值,根絕hash值得到這個元素在數(shù)組中的位置(下標),如果該數(shù)組在該位置上已經(jīng)存放了其他元素,那麼在這個位置上的元素將以鍊錶的形式存放,新加入的放在鏈頭,最先加入的放入鏈尾.如果數(shù)組中該位置沒有元素,就直接將該元素放到數(shù)組的該位置上。

需要注意Jdk 1.8中對HashMap的實現(xiàn)做了優(yōu)化,當(dāng)鍊錶中的節(jié)點資料超過八個之後,該鍊錶會轉(zhuǎn)為紅黑樹來提高查詢效率,從原來的O(n)到O(logn)

2、說一下HashSet 的實作原理?

HashSet底層由HashMap實作

HashSet的值存放在HashMap的key上

HashMap的value統(tǒng)一為PRESENT

#(相關(guān)學(xué)習(xí):java常見面試題

3、ArrayList 和LinkedList 的差別是什麼?

最明顯的差異是 ArrrayList底層的資料結(jié)構(gòu)是數(shù)組,支援隨機訪問,而 LinkedList 的底層資料結(jié)構(gòu)是雙向循環(huán)鍊錶,不支援隨機存取。使用下標存取一個元素,ArrayList 的時間複雜度是 O(1),而 LinkedList 是 O(n)。

4、如何實作陣列與 List 之間的轉(zhuǎn)換?

List轉(zhuǎn)換成為陣列:呼叫ArrayList的toArray方法。

陣列轉(zhuǎn)換成為List:呼叫Arrays的asList方法。

5、ArrayList 和 Vector 的差別是什麼?

Vector是同步的,而ArrayList不是。然而,如果你尋求在迭代的時候?qū)α斜磉M行改變,你應(yīng)該使用CopyOnWriteArrayList。?

ArrayList比Vector快,它因為有同步,不會過載。?

ArrayList比較通用,因為我們可以使用Collections工具類別輕易地取得同步清單和唯讀清單。

相關(guān)影片教學(xué)推薦:java影片教學(xué)

#

以上是2020全新Java面試題-容器(二)的詳細內(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

免費脫衣圖片

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

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

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的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ū)級路徑:項目根目錄下的.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è)置保存點實現(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

了解Java虛擬機(JVM)內(nèi)部 了解Java虛擬機(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

Laravel錯誤和異常處理 Laravel錯誤和異常處理 Jul 31, 2025 am 11:57 AM

Laravel的錯誤與異常處理機制基於PHP異常系統(tǒng)和Symfony組件,由App\Exceptions\Handler類統(tǒng)一管理,1.通過report()方法記錄異常,如集成Sentry等監(jiān)控服務(wù);2.通過render()方法將異常轉(zhuǎn)換為HTTP響應(yīng),支持自定義JSON或頁面跳轉(zhuǎn);3.可創(chuàng)建自定義異常類如PaymentFailedException並定義其響應(yīng)格式;4.自動處理驗證異常ValidationException,可手動調(diào)整錯誤響應(yīng)結(jié)構(gòu);5.根據(jù)APP_DEBUG配置決定是否顯示詳細

了解網(wǎng)絡(luò)端口和防火牆 了解網(wǎng)絡(luò)端口和防火牆 Aug 01, 2025 am 06:40 AM

NetworkPortSandFireWallsworkTogetHertoEnableCommunication whereSeringSecurity.1.NetWorkPortSareVirtualendPointSnumbered0-655 35,with-Well-with-Newonportslike80(HTTP),443(https),22(SSH)和25(smtp)sindiessingspefificservices.2.portsoperateervertcp(可靠,c

See all articles