[Java面試一]面試複習大綱
一、Java基礎部分 (搞定所有技術之後才考慮複習的技術點)
1.陣列中的排序問題(筆試或者機試,前者可能性更大)
2.面向物件的理解
3.集合相關的問題,比如hashmap跟hashtable的區別。搞清楚每個集合物件的特性就歐了。
4.多執行緒啟動方式,以及產生死鎖的原因和解決辦法【多執行緒問題不是很常問,有精力就複習這塊內容】
5.IO流,瞭解常見的幾個流物件以及基本的流操作即可,被機試的可能性比較小。
二、Web基礎 (1年工作經驗者需要重點複習的技術點)
1.http協議(定義、常見的請求頭以及響應頭<功能>、狀態碼)
2.tomcat(目錄結構<存放的內容以及配置檔案裡面能做哪些工作>、常見配置;有能力者可以瞭解一下tomcat的原理<啟動載入問題>)
3.jdbc(程式設計步驟、與hibernate以及mybatis的區別)
4.servlet(概念的理解;生命週期、執行緒安全問題、介面相關型別、體系結構<區別>、request以及response的用途、servletContext物件的功能、編碼以及路徑問題)
5.filter(生命週期、常見應用、dofilter裡面的引數、應用場景)
6.jsp(隱式物件、常見標籤<指令、動作>、EL以及JSTL)
7.cookie/session(概念的理解;生命週期,session建立的時期,相關方法的使用)
三、五大框架 (1年以上工作經驗者需要重點複習的技術點
1.struts2(action相關的問題<書寫方式[區別]、接受請求引數的方式、相關配置、訪問servletAPI的方式>;值棧相 關問題<定義、內部結構、如何獲取值棧物件、EL為什麼能訪問值棧中的資料>;struts2與springMVC的區別;攔截器與過濾器的 區別;struts2工作原理<執行流程>)
2.hibernate(核心思想要了解;開發流程<載入檔案的過程>;查詢方式;如何優化;sql與hql的區別;update與 saveOrUpdate的區別;get和load的區別;Java物件三種狀態的特徵以及轉換、核心API、一級快取和二級快取、延遲載入)
3.spring(springIOC和DI;生命週期;Bean注入屬性的方式;aop極其相關名詞解釋;核心類;applicationContext與beanFactory的區別;bean例項化有哪些方式)
4.springMVC(工作流程;與struts2的區別;亂碼問題如何處理;各元件的擴充套件型別)
5.mybatis(與jdbc/hibernate的區別;)
四、指令碼 (此項與第五項均是需要掌握的內容、筆試題居多)
1.JavaScript核心物件
2.瀏覽器BOM物件
3.文件物件模型DOM
4.常見事件
5.Ajax程式設計(web互動2種方式的對比)
6.傳統Ajax程式設計的步驟以及從伺服器端返回的資料格式(之間的差別)
7.JSON資料格式的轉換操作
8.jQuery選擇器
9.jQuery的Ajax程式設計(常見方法)
10.其餘的問題都是一些筆試題,讓你直接寫javascript程式碼實現某一功能
五、資料庫
資料庫這一塊幾乎都是一些概念性的問答題(儲存過程、函式、事務、索引、觸發器、檢視、遊標以及一些優化操作),筆試100%會出現,一般考察的都是多表聯合查詢
六、人事相關 (答案內容比較長,未做文字說明)
1.自我介紹(注重的是你之前在公司裡面工作內容,特別是最近在公司裡面做的專案<回答思路參考專案相關問題一>)
2.簡單的介紹一下上一家公司的情況/評價
3.你為什麼來XX工作,怎樣看待跳槽?
4.你對我們公司瞭解嗎?
5.你如果有幸進入我們公司,有什麼規劃嗎?
6.你上一家公司的薪資大概是多少?有哪些組成部分?
7.你有沒有投其它公司?如果其它公司也給了offer,你會如何抉擇?
8.你有物件嗎?打算什麼時候結婚生孩子?
9.你對薪資待遇有什麼要求?能再低一點嗎?
10.你還有什麼問題要問我嗎?
七、專案相關 (重點講解問題:商品管理、訂單、購物車、單點登入等實現思路問題,其餘問題參考文件即可)
1.請介紹一下你最近做的這一個專案吧【思路:專案給誰做的、專案涉及的領域、系統的架構(功能&技術)、系統的用途、系統的部署、使用了哪些比較新穎的技術】
2.談談你對電商行業的瞭解【思路:電商行業的發展、行業技術特點、行業的一些概念】
3.你這個專案大概有哪些功能,你負責了哪些核心功能?【擁有的功能儘可能說多一點,建議10個左右,自己負責的3個大(如商品管理、訂單、購物車),其餘的都是其他組員開發的任務】
4.談談xx(具體的,比如商品管理、訂單、購物車)模組/功能的實現思路?實現的過程中涉及到了哪些技術,這些技術能介紹下嗎?【可參考“02_電商專案面試問題”裡面的答案】
5.你們公司有多少人?有測試嗎?有美工嗎?整個專案組人員配置是怎麼樣的?專案開發的流程大概是什麼樣子的?【檢驗是否有工作經驗的一個問題】
6.這個專案使用了什麼構建工具沒有?有的話,多模組之間是如何劃分的?為什麼要這麼劃分?
7.在這個專案中是如何設計商品規格的?
8.這個系統中你是如何實現跨系統呼叫的?
9.在這個專案中,CMS系統是如何設計的,簡單的說一下設計思路
10.在這個專案中,你們主要使用什麼樣的資料格式來進行資料的傳輸的?
11.單點系統的設計思想你瞭解嗎?他在系統架構中的作用是什麼?位置如何?
12.你們這個專案中訂單ID是怎麼生成的?我們公司最近打算做一個電商專案,如果讓你設計這塊,你會考慮哪些問題?
13.各個伺服器的時間不統一怎麼辦?
14.你們線上部署時什麼樣的,能畫一下嗎?
15.你們生產環境的伺服器有多少臺?16.你們使用什麼做支付的?如果使用易寶做支付,請求超時了怎麼處理?
17.你剛才不是說付款成功後易寶會有資料返回嗎?如果付款後易寶沒有返回,或者返回超時了,但是錢又已經扣了,你怎麼辦?
18.你們怎麼做退款功能的,要多長時間才能把錢退回給使用者?
19.你購物車存cookie裡邊可以實現不登入就可以使用購物車,那麼我現在沒有登入把商品存購物車了,然後登入了, 然後我換臺電腦並且登入了還能不能看見我購物車的資訊?如果看不到怎麼做到cookie同步,就是在另外一臺電腦上可以看到購物車資訊
20.如果使用者一直向購物車新增商品怎麼辦?並且他新增一次你查詢一次資料庫?網際網路上使用者那麼多,這樣會對資料庫造成很大壓力你怎麼辦?
21.購物車的設計細節問題
八、其他技術問題 (根據自己的精力和實際能力進行選取,主要是為了證明自己的技術能力強、經驗足,提升薪資用的)
1.許可權控制(一般情況,在公司必須有一定工作經驗的開發者才會被分配該功能模組的開發,這意味著學員在剛開始參加工作的那個專案裡面絕對不能寫的內容。) 這裡一般都會提及shiro技術,在這塊需要掌握shiro相關的幾個元件以及他們的呼叫關係,然後就是許可權設計的幾張資料庫表(表之間的關係以及每張表裡面的重要欄位)
2.搜尋系統(普通的查詢會讓面試官問及效率問題,那麼勢必要提到全文檢索技術,由於剛學不是很熟,根據自己掌握的情況進行選擇)
3.瀏覽器跨域問題(前臺系統呼叫可以使用jsonp來實現瀏覽器跨域問題,去年有學員花幾個小時學習這個,僅憑此技術入職8K。)
4.webservice(該技術已有替代技術,如果不會,可以不用花時間去複習)
5.Linux(水太深,只談自己在專案中就部署的時候用了一下即可)
6.redis(根據自己的能力看是否需要提及次技術,畢竟購物車的實現方式比較多。)