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方法時,都不會阻塞,都能夠正常的往隊列中添加或者移除元素。
本文來自千鋒教育,轉載請注明出處。
總結
以上是生活随笔為你收集整理的Java开发经典面试题分享,建议收藏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这些Java代码优化细节,你需要注意!
- 下一篇: Web前端基础知识:ES5及ES6thi