Java開發經典面試題分享,建議收藏
今天分享一篇Java開發的經典面試題,一起來看看吧!
1、SpringMVC的工作流程?
(1)使用者傳送請求至前端控制器DispatcherServlet
(2)DispatcherServlet收到請求呼叫HandlerMapping處理器對映器。
(3)處理器對映器根據請求url找到具體的處理器,生成處理器物件及處理器攔截器(如果有則生成)一併返回給DispatcherServlet。
(4)DispatcherServlet透過HandlerAdapter處理器介面卡呼叫處理器
(5)執行處理器(Controller,也叫後端控制器)。
(6)Controller執行完成返回ModelAndView
(7)HandlerAdapter將controller執行結果ModelAndView返回給DispatcherServlet
(8)DispatcherServlet將ModelAndView傳給ViewReslover檢視解析器
(9)ViewReslover解析後返回具體View
(10)DispatcherServlet對View進行渲染檢視(即將模型資料填充至檢視中)
(11)DispatcherServlet響應使用者
2、垃圾回收的優點和原理。並考慮2 種回收機制。
答:Java 語言中一個顯著的特點就是引入了垃圾回收機制,使c++程式設計師最頭疼的記憶體管理的問題迎刃而解,它使得Java 程式設計師在編寫程式的時候不再需要考慮記憶體管理。由於有個垃圾回收機制,Java 中的物件不再有“作用域”的概念,只有物件的引用才有“作用域”。垃圾回收可以有效的防止記憶體洩露,有效的使用可以使用的記憶體。垃圾回收器通常是作為一個單獨的低階別的執行緒執行,不可預知的情況下對記憶體堆中已經死亡的或者長時間沒有使用的物件進行清楚和回收,程式設計師不能實時的呼叫垃圾回收器對某個物件或所有物件進行垃圾回收。回收機制有分代複製垃圾回收和標記垃圾回收,增量垃圾回收。
3、jsp 有哪些動作?作用分別是什麼?
答:JSP 共有以下6 種基本動作:
jsp:include:在頁面被請求的時候引入一個檔案;
jsp:useBean:尋找或者例項化一個JavaBean。;
jsp:setProperty:設定JavaBean 的屬性。;
jsp:getProperty:輸出某個JavaBean 的屬性;
jsp:forward:把請求轉到一個新的頁面;
jsp:plugin:根據瀏覽器型別為Java 外掛生成OBJECT 或EMBED 標記。
4、如何用Java實現阻塞佇列?
首先,我們要明確阻塞佇列的定義:
阻塞佇列(BlockingQueue)是一個支援兩個附加操作的佇列。這兩個附加的操作是:在佇列為空時,獲取元素的執行緒會等待佇列變為非空。當佇列滿時,儲存元素的執行緒會等待佇列可用。 阻塞佇列常用於生產者和消費者的場景,生產者是往佇列裡新增元素的執行緒,消費者是從佇列裡拿元素的執行緒。阻塞佇列就是生產者存放元素的容器,而消費者也只從容器裡拿元素。
阻塞佇列的一個簡單實現:
```
public class BlockingQueue {
private List queue = new LinkedList();
private int limit = 10;
public BlockingQueue(int limit){
this.limit = limit;
}
public synchronized void enqueue(Object item)throws InterruptedException {
while(this.queue.size() == this.limit) {
wait();
}
if(this.queue.size() == 0) {
notifyAll();
}
this.queue.add(item);
}
public synchronized Object dequeue() throws InterruptedException{
while(this.queue.size() == 0){
wait();
}
if(this.queue.size() == this.limit){
notifyAll();
}
return this.queue.remove(0);
}
}
```
在enqueue和dequeue方法內部,只有佇列的大小等於上限(limit)或者下限(0)時,才呼叫notifyAll方法。如果佇列的大小既不等於上限,也不等於下限,任何執行緒呼叫enqueue或者dequeue方法時,都不會阻塞,都能夠正常的往佇列中新增或者移除元素。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2773796/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Kubernetes面試題寶典,建議收藏哦!面試題
- android開發面試經典收藏Android面試
- 分享幾個Java面試小技巧,建議收藏!Java面試
- java經典面試題Java面試題
- 經典Java面試題收集Java面試題
- 經典Java面試題收集(二)Java面試題
- 經典web開發工程師面試題Web工程師面試題
- 2萬字Java併發程式設計面試題合集(含答案,建議收藏)Java程式設計面試題
- Java經典面試題-不古出品Java面試題
- 好程式設計師Java教程分享經典Java main方法面試題程式設計師JavaAI面試題
- 經典面試題面試題
- Android面試送分題:Android面試真題解析火爆全網,建議收藏Android面試
- Java經典面試題(二)-不古出品Java面試題
- javascript經典面試題JavaScript面試題
- Js 經典面試題JS面試題
- 前端經典面試題前端面試題
- Java面試經典題:執行緒池專題Java面試執行緒
- 阿里歷年經典Java面試題彙總,想進BAT你還不快收藏!阿里Java面試題BAT
- 經典Java面試題彙總及答案解析Java面試題
- Java經典面試題: == 和 equals( )的區別Java面試題
- 阿里歷年經典Java面試題彙總阿里Java面試題
- 經典的Java面試題及回答集錦Java面試題
- [Java面試]經典手撕Java面試
- 軟體測試工程師面試題合集,建議收藏一波!工程師面試題
- Google經典面試題解析Go面試題
- [面試題]事件迴圈經典面試題解析面試題事件
- [學習資料]稀缺的音視訊,50道音視訊經典面試題,國內國外大佬教學視訊,N個經典開源專案,建議收藏面試題
- 49個Spring經典面試題總結,附帶答案,趕緊收藏Spring面試題
- 2022年最強大資料面試寶典(全文50000字,強烈建議收藏)大資料面試
- JavaScript經典面試題詳解JavaScript面試題
- Runtime經典面試題(附答案)面試題
- 經典 JS 閉包面試題JS面試題
- leetcode-面試經典150題LeetCode面試
- 20道JavaScript經典面試題JavaScript面試題
- 前端經典面試題(有答案)前端面試題
- Python經典面試題(附答案)!Python面試題
- Python經典面試題之前端和框架!Python學習分享Python面試題前端框架
- 計算機專業必讀的經典書籍!!(建議收藏)計算機