更新時間:2019-08-04 09:00:00 來源:動力節(jié)點 瀏覽2965次
隨著互聯網的發(fā)展,從事java后臺開發(fā)的人不斷增多,那么面試java后臺開發(fā)的人都有碰到哪些java后臺面試問題呢?現在跟隨動力節(jié)點java學院小編一起去了解一下吧。
Arrays.sort實現原理和Collection實現原理
答:Arrays.sort():快排
Collections.sort() :MergeSort,后來變成了TimSort
2. foreach和while的區(qū)別(編譯之后)
答:foreach針對確定次數;while不確定次數
3. 線程池的種類,區(qū)別和使用場景
答:newCachedThreadPool創(chuàng)建一個可緩存線程池,如果線程池長度超過處理需要,可靈活回收空閑線程,若無可回收,則新建線程。
newFixedThreadPool 創(chuàng)建一個定長線程池,可控制線程最大并發(fā)數,超出的線程會在隊列中等待。
newScheduledThreadPool 創(chuàng)建一個定長線程池,支持定時及周期性任務執(zhí)行。
newSingleThreadExecutor 創(chuàng)建一個單線程化的線程池,它只會用唯一的工作線程來執(zhí)行任務,保證所有任務按照指定順序(FIFO, LIFO, 優(yōu)先級)執(zhí)行。
4. 線程池如何調優(yōu)
答:使用線程池的核心問題在于應該使用多少線程。利特爾法則、拆分線程池
5. 線程池的最大線程數目根據什么確定
答:corePoolSize: tasks*tasktime個線程數
queueCapacity: corePoolSize/tasktime)*responsetime
maxPoolSize: (每秒任務-queueCapacity)*(每秒單個線程處理任務數量)
6. 動態(tài)代理的幾種方式
答:代理模式的作用是:為其他對象提供一種代理以控制對這個對象的訪問。在某些情況下,一個客戶不想或者不能直接引用另一個對象,而代理對象可以在客戶端和目標對象之間起到中介的作用。
動態(tài)代理:在程序運行時,運用反射機制動態(tài)創(chuàng)建而成。每一個動態(tài)代理類都必須要實現InvocationHandler這個接口。
jdk動態(tài)代理:jdk動態(tài)代理是由Java內部的反射機制來實現的,應用前提,必須是目標類基于統(tǒng)一的接口
cglib動態(tài)代理:動態(tài)代理框架,借助asm來實現的
更多關于java后臺開發(fā)的相關面試題,請繼續(xù)關注動力節(jié)點java學院官網,會有更多精彩內容與您分享。