你是否也想過在短時間內通過Java的面試,這些你瞭解了嗎?不要孤軍奮戰。

不論是校招還是社招都避免不了各種面試、筆試,如何去準備這些東西就顯得格外重要。不論是筆試還是面試都是有章可循的,我這個“有章可循”說的意思只是說應對技術面試是可以提前準備。 我其實特別不喜歡那種臨近考試就提前背啊記啊各種題的行爲,非常反對!我覺得這種方法特別極端,而且在稍有一點經驗的面試官面前是根本沒有用的。建議大家還是一步一個腳印踏踏實實地走。

運籌帷幄之後,決勝千里之外!不打毫無準備的仗,我覺得大家可以先從下面幾個方面來準備面試:

  1. 自我介紹。(你可千萬這樣介紹:“我叫某某,性別,來自哪裏,學校是那個,自己愛幹什麼”,記住:多說點簡歷上沒有的,多說點自己哪裏比別人強!)
  2. 自己面試中可能涉及哪些知識點、那些知識點是重點。
  3. 面試中哪些問題會被經常問到、面試中自己改如何回答。(強烈不推薦背題,第一:通過背這種方式你能記住多少?能記住多久?第二:背題的方式的學習很難堅持下去!)
  4. 自己的簡歷該如何寫。

“80%的offer掌握在20%的人手中” 這句話也不是不無道理的。決定你面試能否成功的因素中實力固然佔有很大一部分比例,但是如果你的心態或者說運氣不好的話,依然無法拿到滿意的 offer。運氣暫且不談,就拿心態來說,千萬不要因爲面試失敗而氣餒或者說懷疑自己的能力,面試失敗之後多總結一下失敗的原因,後面你就會發現自己會越來越強大。

另外,大家要明確的很重要的幾點是:

  1. 寫在簡歷上的東西一定要慎重,這可能是面試官大量提問的地方;
  2. 大部分應屆生找工作的硬傷是沒有工作經驗或實習經歷;
  3. 將自己的項目經歷完美的展示出來非常重要。

筆主能力有限,如果有不對的地方或者和你想法不同的地方,敬請雅正、不捨賜教。

面試可能會問哪些問題?

希望通過這些問題,能夠讓大家學習更有方向,而不是單純把這些問題都背會了!

另外,內容會繼續完善,歡迎你在評論區說出你遇到的高頻面試題!

Java

“ Java 基礎這部分一些簡單的問題就直接沒有放上來。

基礎:

  1. Java 反射?反射有什麼缺點?你是怎麼理解反射的(爲什麼框架需要反射)?
  2. 談談對 Java 註解的理解,解決了什麼問題?
  3. 內部類瞭解嗎?匿名內部類瞭解嗎?
  4. BIO和NIO區別,4核cpu,100個http連接,用BIO和NIO分別需要多少個線程
  5. 假如我們需要存500個數需要多大的HashMap?
  6. HashMap的負載因子。

jvm:

  1. jvm 內存結構
  2. jvm 調優參數
  3. 什麼是類加載?
  4. 何時類加載?
  5. java的類加載流程?
  6. 知道哪些類加載器。類加載器之間的關係?
  7. 類加載器之間的關係?
  8. 類加載器的雙親委派 (結合tomcat說一下雙親委派)
  9. 爲什麼需要雙親委派
  10. Java內存模型
  11. 棧中存放什麼數據,堆中呢?
  12. 大對象放在哪個內存區域
  13. 堆區如何分類
  14. 垃圾回收有哪些算法
  15. GC的全流程
  16. GC中老年代用什麼回收方法?

多線程:

  1. Java線程池有哪些參數?阻塞隊列有幾種?拒絕策略有幾種?
  2. 死鎖

設計模式:

  1. 閱讀Spring源碼的時候什麼設計模式最讓你影響深刻?如何使用?
  2. 單例模式,單例模式的使用場景
  3. 觀察者模式,觀察者模式的使用場景

Spring

  1. spring boot和spring的區別
  2. ioc 和 aop(ioc流程、aop實現原理)、spring aop異常處理、當一段代碼被try catch後再發生異常時,aop的異常通知是否執行,爲什麼?
  3. spring bean的生命週期說一下
  4. spring data jpa底層是什麼?
  5. hibernate和mybatis區別
  6. spring boot 過濾器
  7. spring boot 攔截器
  8. Spring動態代理默認用哪一種
  9. 寫出spring jdk動態代理的實現。
  10. 畫出spring boot處理一個http請求的全過程

權限認證(答案已經完成)

  1. 認證 (Authentication) 和授權 (Authorization)的區別是什麼?
  2. 什麼是Cookie ? Cookie的作用是什麼?如何在服務端使用 Cookie ?
  3. Cookie 和 Session 有什麼區別?如何使用Session進行身份驗證?
  4. 如果沒有Cookie的話Session還能用嗎?
  5. 爲什麼Cookie 無法防止CSRF攻擊,而token可以?
  6. 什麼是 Token?什麼是 JWT?如何基於Token進行身份驗證?
  7. 什麼是OAuth 2.0?
  8. 什麼是SSO(單點登錄)

微服務/分佈式(答案已經完成)

  1. 爲什麼要網關?
  2. 限流的算法有哪些?
  3. 爲什麼要分佈式 id ?分佈式 id 生成策略有哪些?
  4. 瞭解RPC嗎?有哪些常見的 RPC 框架?
  5. 如果讓你自己設計 RPC 框架你會如何設計?
  6. Dubbo 瞭解嗎?Spring Cloud 瞭解嗎?

數據庫

  1. 非關係型數據庫和關係型數據庫的區別?
  2. 事務的四大特性
  3. MySQL 事務隔離級別?默認是什麼級別?
  4. 樂觀鎖與悲觀鎖的區別
  5. 數據庫兩種存儲引擎的區別
  6. 最左前綴匹配原則及它的原因
  7. 大表優化的思路
  8. where和having的區別
  9. 分庫分表
  10. explain 命令

索引

  1. 如何加快數據庫查詢速度
  2. 聚集索引和非聚集索引的區別
  3. 什麼時候不該使用索引?
  4. 索引底層的數據結構?
  5. B+樹做索引比紅黑樹好在哪裏?

Redis:

  1. 項目中 redis 是怎麼用的?解決了什麼問題?
  2. 說一下有緩存情況下查詢的流程以及有緩存情況下修改的流程。
  3. redis有哪些數據結構
  4. redis內存滿了怎麼辦
  5. redis內存淘汰算法除了lru還有哪些
  6. 分佈式緩存可能出現的問題
  7. 緩存穿透問題

網絡

  1. 計算機網絡的一些常見狀態碼
  2. ping 所使用的協議
  3. TCP的三次握手與四次揮手的內容
  4. TCP爲什麼連接是三次握手而斷開是四次握手
  5. TCP與UDP的區別及使用場景
  6. 一次完整的HTTP請求所經的步驟
  7. http 如何保存登錄信息(沒太搞懂意思)
  8. Cookie 和 Session的關係

算法和數據結構

算法

  1. LRU 算法瞭解嗎?你能實現一個嗎?
  2. 寫排序算法(快排、堆排)

數據結構

  1. 布隆過濾器瞭解嗎?

設計題

  1. 假如有10億個數,只有一個重複,內存只能放下5億個數,怎麼找到這個重複的數字?
  2. 如何設計一個秒殺系統(服務端、數據庫、分佈式)?分佈式系統的設計?
  3. 有一個服務器專門接收大量請求,怎麼設計?
  4. 如果讓你自己設計 RPC 框架你會如何設計?
  5. 怎麼快速出現一個stackoverflow錯誤?

其他問題

  1. 自我介紹。
  2. 說說你的項目中的亮點有哪些。
  3. 畫一下你的項目的架構圖。
  4. Restful 瞭解嗎?簡單說一下自己對它的認識,如果我要返回一個 boolean 類型的數據怎麼辦?

經驗總結

  1. 多面試,不要害怕失敗,多總結經驗。
  2. 儘早準備,不論是找工作前、面試前還是面試後。
  3. 熟悉自己的簡歷。
  4. 電話和視頻面試很平常,面試前提前準備一下。
  5. 堅持!offer 雖然可能會遲到,但是隻要不放棄,就一定不會缺席。

初中級 Java 程序員必須掌握的知識。

具體的技能要求要看你應聘的公司!

  1. 熟練掌握數據結構、算法、操作系統、計算機網絡等基礎知識
  2. 熟練掌握Java編程、熟悉Java高併發開發手段、對JVM 虛擬機(Java內存區域、虛擬機垃圾算法、虛擬垃圾收集器、JVM內存管理)有一定研究
  3. 熟練掌握SOA分佈式系統開發,具有優化系統性能、提高系統併發量以及系統可用性的實際經驗
  4. 熟練掌握Struts2、Spring、Hibernate、Mybatis 等框架的使用,熟悉 Spring 原理
  5. 熟練掌握Dubbo、Zookeeper、常見的消息隊列(比如ActiveMq)的使用
  6. 熟悉Linux 系統的使用,在Linux系統下具有實際的開發經驗
  7. 熟悉MySQL數據庫的使用、常見SQL語句的書寫以及常見的優化手段
  8. 掌握 Spring Boot +Spring Cloud +Docker
  9. 瞭解Hadoop 生態相關技術中的 HDFS、Storm、MapReduce、Hive、Hbase

推薦一個學習過程中看的倉庫

筆主自己開源的一個Java學習與面試項目,目前已經幾個月是JavaTrending榜第一名了,目前已經有 65k+ star,我自己有點不那麼實至名歸,我也只是靠平時業餘時間來維護,大家可以看一下,因該對大家學習Java有一點沒有幫助。

這個倉庫裏面有常見知識點總結(目前還在繼續完善中)、常見面試題、備戰面試系列文章以及BATJ真實面經等內容。

  • 對於 Java 初學者來說: 本文檔傾向於給你提供一個比較詳細的學習路徑,讓你對於Java整體的知識體系有一個初步認識。另外,本文的一些文章 也是你學習和複習 Java 知識不錯的實踐;
  • 對於非 Java 初學者來說: 本文檔更適合回顧知識,準備面試,搞清面試應該把重心放在那些問題上。要搞清楚這個道理:提前知道那些面試常見,不是爲了背下來應付面試,而是爲了讓你可以更有針對的學習重點。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章