知了堂Java | Java基礎(chǔ)面試題(8)
26.說一下 HashSet 的實(shí)現(xiàn)原理?
HashSet底層由HashMap實(shí)現(xiàn)
HashSet的值存放于HashMap的key上?
HashMap的value統(tǒng)一為PRESENT
27.創(chuàng)建線程池有哪幾種方式
①. newFixedThreadPool(int nThreads) 創(chuàng)建一個(gè)固定長(zhǎng)度的線程池,每當(dāng)提交一個(gè)任務(wù)就創(chuàng)建一個(gè)線程,直到達(dá)到線程池的最大數(shù)量,這時(shí)線 程規(guī)模將不再變化,當(dāng)線程發(fā)生未預(yù)期的錯(cuò)誤而結(jié)束時(shí),線程池會(huì)補(bǔ)充一個(gè)新的線程。
②. newCachedThreadPool() 創(chuàng)建一個(gè)可緩存的線程池,如果線程池的規(guī)模超過了處理需求,將自動(dòng)回收空閑線程,而當(dāng)需求增加 時(shí),則可以自動(dòng)添加新線程,線程池的規(guī)模不存在任何限制。?
③. newSingleThreadExecutor() 這是一個(gè)單線程的Executor,它創(chuàng)建單個(gè)工作線程來執(zhí)行任務(wù),如果這個(gè)線程異常結(jié)束,會(huì)創(chuàng)建一個(gè)新 的來替代它;它的特點(diǎn)是能確保依照任務(wù)在隊(duì)列中的順序來串行執(zhí)行。?
④. newScheduledThreadPool(int corePoolSize) 創(chuàng)建了一個(gè)固定長(zhǎng)度的線程池,而且以延遲或定時(shí)的方式來執(zhí)行任務(wù),類似于Timer
今日分享就到這啦。請(qǐng)持續(xù)關(guān)注我們,帶你了解更多Java相關(guān)干貨知識(shí)。