更新時間:2020-01-07 14:42:40 來源:動力節(jié)點(diǎn) 瀏覽2801次
1、如何從FutureTask不阻塞獲取結(jié)果
get(long timeout,TimeUnit unit),超時則返回
輪詢,先通過isDone()判斷是否結(jié)束,然后調(diào)用get()
2、 blockingqueue如果存放了比較關(guān)鍵的數(shù)據(jù),系統(tǒng)宕機(jī)該如何處理
其實(shí)這個是一個開放性問題,不同的人會給出不同的答案,大家可以自行發(fā)揮,也可以討論一下更好的答案。
將隊列持久化,比較麻煩,需要將生產(chǎn)數(shù)據(jù)持久化到磁盤,持久化成功才返回,消費(fèi)者線程從磁盤加載數(shù)據(jù)到內(nèi)存阻塞隊列中,維護(hù)消費(fèi)offset,啟動時,根據(jù)消費(fèi)offset從磁盤加載數(shù)據(jù)
加入消息隊列,保證消息不丟失,生成序列號,消費(fèi)冪等,根據(jù)消費(fèi)進(jìn)程決定系統(tǒng)重啟后的生產(chǎn)狀態(tài)
3、簡單介紹下springMVC和struts2的區(qū)別有哪些?
1) springmvc的入口是一個servlet即前端控制器,而struts2入口是一個filter過慮器。2)springmvc是基于方法開發(fā)(一個url對應(yīng)一個方法),請求參數(shù)傳遞到方法的形參,可以設(shè)計為單例或多例(建議單例),struts2是基于類開發(fā),傳遞參數(shù)是通過類的屬性,只能設(shè)計為多例。3)Struts采用值棧存儲請求和響應(yīng)的數(shù)據(jù),通過OGNL存取數(shù)據(jù), springmvc通過參數(shù)解析器是將request請求內(nèi)容解析,并給方法形參賦值,將數(shù)據(jù)和視圖封裝成ModelAndView對象,最后又將ModelAndView中的模型數(shù)據(jù)通過reques域傳輸?shù)巾撁妗sp視圖解析器默認(rèn)使用jstl。
4、 NIO與傳統(tǒng)I/O的區(qū)別
1)節(jié)約線程,NIO由原來的每個線程都需要阻塞讀寫變成了由單線程(即Selector)負(fù)責(zé)處理多個channel注冊(register)的興趣事件(SelectionKey)集合(底層借助操作系統(tǒng)提供的epoll()),netty bossgroup處理accept連接(沒看明白為什么bossgroup設(shè)置多個thread的必要性),workergroup處理具體業(yè)務(wù)流程和數(shù)據(jù)讀寫
2)NIO提供非阻塞操作
3)傳統(tǒng)I/O 以流的方式處理數(shù)據(jù),而 NIO 以塊的方式處理數(shù)據(jù),NIO提供bytebuffer,分為堆內(nèi)和堆外緩沖區(qū),讀寫時均先放到該緩沖區(qū)中,然后由內(nèi)核通過channel傳輸?shù)綄Χ耍淹饩彌_區(qū)不走內(nèi)核,提升了性能
5、list中存放可重復(fù)字符串,如何刪除某個字符串
1)調(diào)用iterator相關(guān)方法刪除
2)倒刪,防止正序刪除導(dǎo)致的數(shù)組重排,index跳過數(shù)組元素問題
以上就是動力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“2020年Java初級開發(fā)面試題”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)推薦
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743