1. 程式人生 > >[Java面試一]面試複習大綱.

[Java面試一]面試複習大綱.

[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(根據自己的能力看是否需要提及次技術,畢竟購物車的實現方式比較多。)