在閱讀ArrayList的源碼時晰赞,你會發(fā)現(xiàn)這樣一個接口:RandomAccess乌助。接下來讓我們探索一下這個接口腌逢。 首先看峻,這是一個標(biāo)識性接口,不包含實(shí)際方法。官方API中的介紹...
![240](https://upload.jianshu.io/users/upload_avatars/23037432/9ca10cf7-277c-4117-bd57-ce7037b8aa0e.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
在閱讀ArrayList的源碼時晰赞,你會發(fā)現(xiàn)這樣一個接口:RandomAccess乌助。接下來讓我們探索一下這個接口腌逢。 首先看峻,這是一個標(biāo)識性接口,不包含實(shí)際方法。官方API中的介紹...
阿里巴巴Java開發(fā)手冊中有這樣一條規(guī)定: 【強(qiáng)制】不要在foreach循環(huán)里進(jìn)行元素的remove/add操作。remove元素請使用Iterator方式钻注,如果并發(fā)操作,需...
基本概念 持續(xù)集成(Continuous integration幅恋,CI)指的是,頻繁地(一天多次)將代碼集成到主干泵肄。它的好處主要有兩個: 快速發(fā)現(xiàn)錯誤佳遣。每完成一點(diǎn)更新,就集成...
Java序列化可以將對象轉(zhuǎn)換為二進(jìn)制序列凡伊,以方便對象持久化和網(wǎng)絡(luò)傳輸。 基本用法 要實(shí)現(xiàn)序列化的對象必須實(shí)現(xiàn)java.io.Serializable這個接口窒舟,并借助IDE生成...
在瀏覽器中輸入一個網(wǎng)址系忙,會發(fā)生什么? 第一步惠豺,瀏覽器獲取域名后向DNS服務(wù)器請求獲得該域名對應(yīng)的服務(wù)器的IP地址银还,這一步使用了UDP協(xié)議 第二步风宁,瀏覽器和該服務(wù)器發(fā)起TCP的...
TCP底層會根據(jù)TCP緩沖區(qū)的實(shí)際情況對網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)流進(jìn)行包的劃分,而不會根據(jù)上層業(yè)務(wù)數(shù)據(jù)的具體含義來劃分蛹疯,所以戒财,一個在業(yè)務(wù)邏輯上完整的包在實(shí)際傳輸中可能會被拆分成多個包進(jìn)...
select、poll捺弦、epoll等系統(tǒng)調(diào)用都是IO多路復(fù)用的操作系統(tǒng)層面的實(shí)現(xiàn)機(jī)制饮寞。IO多路復(fù)用是一種同步非阻塞的網(wǎng)絡(luò)IO模型,“復(fù)用”是指通過對一個線程的復(fù)用使其能夠同時...
如果明明有這個類存在但仍然提示cannot access列吼,這可能是IDE的bug幽崩,可以清除緩存并重啟: 嘗試 File->Invalidate Caches /Restart...
策略模式簡介 當(dāng)我們因不同的外部條件需要對某個對象執(zhí)行不同的算法時,我們就可以把具體的算法實(shí)現(xiàn)從具體的業(yè)務(wù)處理中獨(dú)立出來寞钥,把它們實(shí)現(xiàn)成為單獨(dú)的算法類慌申,從而形成一系列的算法,并...
推薦使用Angular 團(tuán)隊的規(guī)范理郑,其格式如下: 分為三個部分(使用空行分割): 標(biāo)題行: 必填, 描述主要修改類型和內(nèi)容 主題內(nèi)容: 描述為什么修改, 做了什么樣的修改, ...
LockSupport簡介 LockSupport工具類用來掛起和喚醒線程蹄溉,底層使用Unsafe類實(shí)現(xiàn),其最核心的方法是park和unpark: park:該方法用來阻塞線程...
AQS是JUC包中的基礎(chǔ)組件您炉,許多同步器例如ReentrantLock柒爵、Semaphore等都是基于AQS實(shí)現(xiàn)的,如果不懂AQS邻吭,怎敢說自己懂并發(fā)編程餐弱? AQS的作用簡述 A...
HashMap在并發(fā)環(huán)境下會出現(xiàn)死循環(huán)等問題,其不是并發(fā)安全的囱晴。使用并發(fā)安全的HashTable或者Collections.synchronizedMap(hashMap)膏蚓,...
費(fèi)曼學(xué)習(xí)法的精髓在于用自己的語言把學(xué)習(xí)的知識給他人講懂 下面有一些問題,并附有答案和對該知識點(diǎn)的詳解畸写,如果你能用自己的語言把該問題講解清楚驮瞧,那恭喜你,該知識點(diǎn)你掌握了枯芬! 1....
HashMap的設(shè)計簡述 JDK1.8中的HashMap由數(shù)組+鏈表+紅黑樹構(gòu)成论笔,通過hash函數(shù)求下標(biāo)值往數(shù)組里插入,當(dāng)發(fā)生沖突時使用拉鏈解決千所,當(dāng)拉鏈長度小于8時狂魔,使用鏈表...
顧名思義,Netty中的FastThreadLocal要比JDK中的ThreadLocal更快淫痰,那FastThreadLocal是怎么做到的呢最楷? FastThreadLoca...
ThreadLocal的使用 多線程訪問共享變量時會出現(xiàn)競爭問題,可以使用加鎖等手段來解決問題铸史,另一種解決問題的思路是讓共享變量在線程內(nèi)擁有對應(yīng)的本地變量言询,從而消滅了共享變量...
Java內(nèi)存模型的抽象結(jié)構(gòu) Java線程之間的通信由Java內(nèi)存模型(JMM,Java Memory Model)控制工三,JMM決定一個線程對共享變量的寫入何時對另一個線程可見...
我們首先來看一個標(biāo)準(zhǔn)二分查找的寫法: 對于標(biāo)準(zhǔn)的二分查找讲冠,你只需要記住以下幾點(diǎn),就可以寫得又快又好: 左閉右開區(qū)間适瓦。我們要始終保持區(qū)間的左閉右開竿开,主要體現(xiàn)在:left和rig...
當(dāng)你學(xué)Java的并發(fā)包JUC時犹菇,不可避免德迹,會經(jīng)常遇見樂觀鎖、自旋鎖揭芍、CAS等字眼胳搞,實(shí)際上它們都是對同一個技術(shù)不同層面的一些描述。volatile變量的讀寫和CAS可以實(shí)現(xiàn)線程...