byte1字節(jié),char2字節(jié),short2字節(jié),int4字節(jié),Long8字節(jié),float4字節(jié),double8字節(jié),boolean1字節(jié)
一般有請求的域名、代理、請求的格式編碼、body的大小、支持的壓縮算法、cookie
https協(xié)議是在http協(xié)議加了一層安全協(xié)議,一般有ssl和tls,現(xiàn)在主流用的應(yīng)該是tls1.2,他主要工作在tpc/ip傳輸層的上面,http應(yīng)用層的下面,可以給應(yīng)用層的數(shù)據(jù)進(jìn)行加密,簡單來說客戶端會先校驗服務(wù)端證書,沒問題后會用服務(wù)端公鑰加密一個隨機數(shù)傳給服務(wù)端,服務(wù)端用私鑰解密后再加上之前傳的2個隨機數(shù)會生成一個對稱秘鑰,客戶端也會用這3個隨機數(shù)生成對稱密鑰,后續(xù)會話就會使用這個對稱密鑰交互。
可以使用對象,需要注意對象的equal和hash有沒有被重寫,如果重寫過了是否符合業(yè)務(wù)場景的語義,另外要注意內(nèi)存泄漏問題,像threadlocal就把自己作為map的key存在線程的threadLocalMap里,然后加了個弱引用,map里的key沒人引用就會被回收后續(xù)會通過事件機制觸發(fā)清理對應(yīng)的value,可以降低泄漏風(fēng)險,當(dāng)然常規(guī)操作需要我們手動remove,這樣才能確保不發(fā)生泄漏
hash表+雙向鏈表+紅黑樹
可以存,null作為key在hashmap中有特殊處理,直接放到hash表0下標(biāo)位置,但是一般不建議,業(yè)務(wù)上容易有歧義,concurrentHashMap中key、value=null,直接拋異常了,,因為并發(fā)場景下key或者value為空都會造成二義性
concurrentHashMap主要通過對每個hash槽做cas和加鎖操作來實現(xiàn)線程安全的,這樣并發(fā)度比較高,總的來說一般是在put操作時當(dāng)槽為空節(jié)點是會利用cas設(shè)置節(jié)點,如果槽下面已經(jīng)掛了節(jié)點就會用sychronized鎖住執(zhí)行,擴(kuò)容過程中也是一樣的,當(dāng)然還有其他地方很多地方也用到了。
本質(zhì)上java中創(chuàng)建線程只有一種方式,就是執(zhí)行thread的start方法,他會調(diào)用本地方法向操作系統(tǒng)申請一個線程資源。具體到我們代碼實現(xiàn)這個層面,一般可以用繼承thread類實現(xiàn)run方法、或者實現(xiàn)runable、callable接口,然后作為thread構(gòu)造參數(shù)去執(zhí)行,更常用的是自定義線程池,然后通過回調(diào)函數(shù)去執(zhí)行我們的業(yè)務(wù)代碼,線程池幫我們維護(hù)了thread的生命周期
按2、4、8、16拆分下高位就可以了,不到16說明最多4位,8就是1000,+4=1100,+1=1101
線程狀態(tài)有new、runnable、blocked、waiting、timed_waiting、terminated,new就是thread創(chuàng)建后的時機,runnable就是線程進(jìn)行可執(zhí)行狀態(tài),具體執(zhí)不執(zhí)行代碼由cpu分配時間片,blocked就是阻塞狀態(tài),一般來說使用sychronized就是阻塞,還有類似等待io,這種可以自行恢復(fù)執(zhí)行的就屬于阻塞狀態(tài),waiting則一般是主動等待,并且需要他人喚醒,像wait\notity,lockSupport.park,unpark,join等,timed_wating類似,多了一個超時機制,比如sleep等待超時時間的。
completableFuture實現(xiàn)了future和completionStage接口,所以可以看做一個增強型的future并且具有任務(wù)編排的能力異步工具,實現(xiàn)的大致思路是每個future都有一個result和stack,實際為鏈表的棧,用來存放依賴的任務(wù),每個依賴的任務(wù)又是一個completableFuture,如果有thenApply之類的就會放到棧里,這樣就可以形成一個類似多叉樹的結(jié)構(gòu)了,執(zhí)行的時候就遵循棧特性,后進(jìn)先出的執(zhí)行。
https://blog.csdn.net/m0_62375467/article/details/130769382?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-5-130769382-blog-125930251.235^v43^pc_blog_bottom_relevance_base8&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-5-130769382-blog-125930251.235^v43^pc_blog_bottom_relevance_base8&utm_relevant_index=10
常用命令
ps -ef|grep xxx,ls,sudo,curl,top -X ,free ,df,chmod,chgrd,cat,less,more,tail -f,vim,netstat,awk
可以用信號量或者滑動窗口來限流