可以先從底層數(shù)據(jù)結(jié)構(gòu)開(kāi)始說(shuō)起,然后以某一個(gè)方法為突破口深入,比如:最大的不同是兩者底層的數(shù)據(jù)結(jié)構(gòu)不同,ArrayList底層是數(shù)組,LinkedList底層是雙向鏈表,兩者的數(shù)據(jù)結(jié)構(gòu)不同也導(dǎo)致了操作的API實(shí)現(xiàn)有所差異,拿新增實(shí)現(xiàn)來(lái)說(shuō),ArrayList會(huì)先計(jì)算并決定是否擴(kuò)容,然后把新增的數(shù)據(jù)直接賦值到數(shù)組上,而LinkedList僅僅只需要改變插入節(jié)點(diǎn)和其前后節(jié)點(diǎn)的指向位置關(guān)系即可。最后說(shuō)一下特點(diǎn),ArrayList查詢快,增刪慢LinkedList查詢慢,增刪快。 查看全文>>
技術(shù)文章2020-10-13 |傳智播客 |ArrayList和LinkedList的區(qū)別和聯(lián)系
List是工作中最常用的集合類型之一,面試的時(shí)候,大家也會(huì)被問(wèn)到各種各樣的問(wèn)題,但是一般大多數(shù)情況下,只要你看了解過(guò)List集合源碼,對(duì)List集合總結(jié)結(jié)構(gòu)和源碼有所了解的話,一般都問(wèn)題不大。 查看全文>>
技術(shù)文章2020-10-13 |傳智播客 |如何理解ArrayList集合
LinkedList 集合底層是一個(gè)雙向鏈表結(jié)構(gòu),具有增刪快,查詢慢的忒點(diǎn),內(nèi)部包含大量操作首尾元素的方法。適用于集合元素先入先出和先入后出的場(chǎng)景,在隊(duì)列源碼中被頻繁使用。 查看全文>>
技術(shù)文章2020-10-13 |傳智播客 |LinkedList源碼分析
在Linux系統(tǒng)上安裝Docker有3種方式,分別為在線安裝、離線安裝以及腳本文件安裝,其中最常用也是官方推薦的安裝方式就是在線安裝。接下來(lái)將在 Ubuntu16.04系統(tǒng)上分別針對(duì)這3種安裝方式進(jìn)行詳細(xì)講解。 查看全文>>
技術(shù)文章2020-10-13 |傳智播客 |Docker 安裝教程
對(duì)于sleep()方法,我們首先要知道該方法是屬于Thread類中的。而wait()方法,則是屬于Object類中的。sleep()方法導(dǎo)致了程序暫停執(zhí)行指定的時(shí)間,讓出cpu該其他線程,但是他的監(jiān)控狀態(tài)依然保持者,當(dāng)指定的時(shí)間到了又會(huì)自動(dòng)恢復(fù)運(yùn)行狀態(tài)。在調(diào)用sleep()方法的過(guò)程中,線程不會(huì)釋放對(duì)象鎖。而當(dāng)調(diào)用wait()方法的時(shí)候,線程會(huì)放棄對(duì)象鎖,進(jìn)入等待此對(duì)象的等待鎖定池,只有針對(duì)此對(duì)象調(diào)用notify()方法后本線程才進(jìn)入對(duì)象鎖定池準(zhǔn)備獲取對(duì)象鎖進(jìn)入運(yùn)行狀態(tài)。 查看全文>>
技術(shù)文章2020-09-29 |黑馬程序員 |Java中Sleep和Wait有什么區(qū)別
整體上來(lái)說(shuō)Lock是synchronized的擴(kuò)展版,Lock提供了無(wú)條件的、可輪詢的(tryLock方法)、定時(shí)的(tryLock帶參方法)、可中斷的(lockInterruptibly)、可多條件隊(duì)列的(newCondition方法)鎖操作。另外Lock的實(shí)現(xiàn)類基本都支持非公平鎖(默認(rèn))和公平鎖,synchronized只支持非公平鎖,當(dāng)然,在大部分情況下,非公平鎖是高效的選擇。 查看全文>>
技術(shù)文章2020-09-29 |傳智播客 |Java創(chuàng)建線程的方式和優(yōu)缺點(diǎn)
同步代碼塊:使用 synchronized() 對(duì)需要完整執(zhí)行的語(yǔ)句進(jìn)行“包裹”,synchronized(Obj obj) 構(gòu)造方法里是可以傳入任何類的對(duì)象。 查看全文>>
技術(shù)文章2020-09-29 |傳智播客 |如何解決多線程的同步問(wèn)題
懶漢模式:在類加載的時(shí)候不被初始化。餓漢模式:在類加載時(shí)就完成了初始化,但是加載比較慢,獲取對(duì)象比較快。 餓漢模式是線程安全的,在類創(chuàng)建好一個(gè)靜態(tài)對(duì)象提供給系統(tǒng)使用,懶漢模式在創(chuàng)建對(duì)象時(shí)不加上synchronized,會(huì)導(dǎo)致對(duì)象的訪問(wèn)不是線程安全的。 查看全文>>
技術(shù)文章2020-09-29 |傳智播客 |單例中懶漢和惡漢模式的區(qū)別
北京校區(qū)