來深圳發展呢,開始了面試之旅,年底啦,可能機會並不多,本來自己也是個小菜鳥。聽說學Java的女生很少,我就去碰碰運氣啦。
2019年1月8號下午去噠
這次面試去了一家外包公司,人事還是比較和氣噠,是個漂亮的小姐姐,沒有筆試,就直接去所謂的經理那里啦。
大概問了我這幾個問題
一、SpringMVC的執行流程?
1、客戶端將請求提交給DispatcherServlet
2、DispatcherServlet查詢一個或多個HanderMapping,找到處理請求的的Controller
3、DispatcherServlet將請求提交給Controller
4、Controller調用邏輯處理后,返回相應的ModelAndView
5、DispatcherServlet查詢一個或多個ViewResolver視圖解析器,找到ModelAndView指定的視圖
6、視圖解析器渲染后返回到客戶端
二、AOP原理
aop 面向切面編程 其底層原理就是動態代理,就是把我們程序重復的代碼抽取出來,在需要執行的時候,使用動態代理的技術,在不修改源碼的基礎上,對已有方法進行增強。
三、SpringBoot好處
使用Java或Groovy開發基於Spring的應用程序非常容易。
減少了大量的開發時間並提高了生產力。避免了編寫大量的樣板代碼,注釋和XML配置。
Spring Boot應用程序與其Spring生態系統集成非常容易。
遵循“自用默認配置”方法,以減少開發工作量。提供嵌入式HTTP服務器,如Tomcat,Jetty等,以開發和測試Web應用程序非常容易。
提供了許多插件來開發和測試Spring啟動應用程序非常容易使用構建工具,如Maven和Gradle。
提供了許多插件,以便與嵌入式和內存數據庫工作非常容易。
四、項目中常用注解
@Autowired -自動裝配
@Component -支持自動裝配
@Service -Service層實現
@Repository - DAO層實現
@Controller -Web層實現
五、Shiro框架重要組件
1、Subject - 本質就是當前訪問用戶的抽象描述
2、SecurityManager - Shiro架構中的核心組件,通過它可以協調其他組件完成用戶認證和授權
3、Realm - 定義了訪問數據的方式,用來連接不同的數據源
六、Redis支持的數據類型
string 、 list 、 set 、zset 、hash
七、Linux常用命令,啟動TomCat命令
ls - 查看目錄中文件
pwd - 顯示工作路徑
yum - list - 列出當前系統中安裝的所有包
yum clean all - 刪除所有緩存的包和頭文件
date - 顯示日期
./startup.sh - 啟動TomCat
八、Mybatis分頁怎么實現
1、項目搭建完成后,引入pagehelper依賴
2、在Mybatis.xml里面配置攔截器插件
3、在mapper文件添加sql
4、dao添加對用方法(@Param)
5、Service添加分頁查詢方法,並實現實現類
九、SpringBoot怎么修改修改端口
在applicatoin.properties配置文件加入server.port = 修改的端口號
十、簡單談談單例模式
單例模式是最Java中簡單的設計模式之一,屬於創建型模式。模式提供一個單一的類,該類負責自己創建對象,並提供唯一的一個訪問方式
單例模式分為懶漢式和餓漢式,懶漢式在用到的時候才會去創建單例對象。餓漢式在程序啟動被加載時,單例模式就已經被創建。
十一、HashMap和Hashtable區別
- HashMap是Hashtable的輕量級實現(非線程安全的實現),他們都完成了Map接口
- 主要區別在於HashMap允許空(null)鍵值(key),由於非線程安全,效率上可能高Hashtable
- HashMap允許將null作為一個entry的key或者value,而Hashtable不允許
- 最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是
十二、創建線程方式,有什么區別
第一種方式:使用Runnable接口創建線程
第二種方式:直接繼承Thread類創建對象
使用Runnable接口創建線程
1.可以將CPU,代碼和數據分開,形成清晰的模型
2.線程體run()方法所在的類可以從其它類中繼承一些有用的屬性和方法
3.有利於保持程序的設計風格一致
直接繼承Thread類創建對象
1.Thread子類無法再從其它類繼承(java語言單繼承)。
2.編寫簡單,run()方法的當前對象就是線程對象,可直接操作。
嗯嗯,記得就這些了,還有一些項目相關的問題就不描述了。問的還是比較基礎的,可能不想懟我吧。