阿里大牛精心整理Java面試文檔:Spring+Linux+MySQL+Redis等

前言

不論是校招還是社招都避免不了各種面試、筆試,如何去準備這些東西就顯得格外重要。不論是筆試還是面試都是有章可循的,我這個“有章可循”說的意思只是說應對技術面試是可以提前準備。

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

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

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

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

一 簡歷該如何寫

俗話說的好:“工欲善其事,必先利其器”。準備一份好的簡歷對於能不能找到一份好工作起到了至關重要的作用。

為什麼說簡歷很重要?

先從面試前來說:

假如你是網申,你的簡歷必然會經過HR的篩選,一張簡歷HR可能也就花費10秒鐘看一下,然後HR就會決定你這一關是Fail還是Pass。

假如你是內推,如果你的簡歷沒有什麼優勢的話,就算是內推你的人再用心,也無能為力。

另外,就算你通過了篩選,後面的面試中,面試官也會根據你的簡歷來判斷你究竟是否值得他花費很多時間去面試, 所以,簡歷就像是我們的一個門面一樣,它在很大程度上決定了你能否進入到下一輪的面試中。

再從面試中來說:

我發現大家比較喜歡看面經 ,這點無可厚非,但是大部分面經都沒告訴你很多問題都是在特定條件下才問的。舉個簡單的例子:一般情況下你的簡歷上註明你會的東西才會被問到(Java、數據結構、網絡、算法這些基礎是每個人必問的),比如寫了你會 redis,那面試官就很大概率會問你 redis 的一些問題。比如:redis的常見數據類型及應用場景、redis是單線程為什麼還這麼快、 redis 和 memcached 的區別、redis 內存淘汰機制等等。

所以,首先,你要明確的一點是:你不會的東西就不要寫在簡歷上。另外,你要考慮你該如何才能讓你的亮點在簡歷中凸顯出來,比如:你在某某項目做了什麼事情解決了什麼問題(只要有項目就一定有要解決的問題)、你的某一個項目裡使用了什麼技術後整體性能和併發量提升了很多等等。

面試和工作是兩回事,聰明的人會把面試官往自己擅長的領域領,其他人則被面試官牽著鼻子走。雖說面試和工作是兩回事,但是你要想要獲得自己滿意的 offffer ,你自身的實力必須要強。

這3點你必須知道

1. 大部分公司的HR都說我們不看重學歷(騙你的!),但是如果你的學校不出眾的話,很難在一堆簡歷中脫穎而出,除非你的簡歷上有特別的亮點,比如:某某大廠的實習經歷、獲得了某某大賽的獎等等。

2. 大部分應屆生找工作的硬傷是沒有工作經驗或實習經歷,所以如果你是應屆生就不要錯過秋招和春招。一旦錯過,你後面就極大可能會面臨社招,這個時候沒有工作經驗的你可能就會面臨各種碰壁,導致找不到一個好的工作

3. 寫在簡歷上的東西一定要慎重,這是面試官大量提問的地方;

4. 將自己的項目經歷完美的展示出來非常重要。

你必須知道的兩大法則

①STAR法則(Situation Task Action Result):

  1. Situation: 事情是在什麼情況下發生;
  2. Task:: 你是如何明確你的任務的;
  3. Action: 針對這樣的情況分析,你採用了什麼行動方式;
  4. Result: 結果怎樣,在這樣的情況下你學習到了什麼。

簡而言之,STAR法則,就是一種講述自己故事的方式,或者說,是一個清晰、條理的作文模板。不管是什麼,合理熟練運用此法則,可以輕鬆的對面試官描述事物的邏輯方式,表現出自己分析闡述問題的清晰性、條理性和邏輯性。

下面這段內容摘自百度百科,我覺得寫的非常不錯:

STAR法則,500強面試題回答時的技巧法則,備受面試者成功者和500強HR的推崇。 由於這個法則被廣泛應用於面試問題的回答,儘管我們還在寫簡歷階段,但是,寫簡歷時能把面試的問題就想好,會使自己更加主動和自信,做到簡歷,面試關聯性,邏輯性強,不至於在一個月後去面試,卻把簡歷裡的東西都忘掉了(更何況有些朋友會稍微誇大簡歷內容)。在我們寫簡歷時,每個人都要寫上自己的工作經歷,活動經歷,想必每一個同學,都會起碼花上半天甚至更長的時間去搜尋腦海裡所有有關的經歷,爭取找出最好的東西寫在簡歷上。但是此時,我們要注意了,簡歷上的任何一個信息點都有可能成為日後面試時的重點提問對象,所以說,不能只管寫上讓自己感覺最牛的經歷就完事了,要想到今後,在面試中,你所寫的經歷萬一被面試官問到,你真的能回答得流利,順暢,且能通過這段經歷,證明自己正是適合這個職位的人嗎?

②FAB 法則(Feature Advantage Benefifit):

  1. Feature: 是什麼;
  2. Advantage: 比別人好在哪些地方;
  3. Benefifit: 如果僱傭你,招聘方會得到什麼好處。

簡單來說,這個法則主要是讓你的面試官知道你的優勢、招了你之後對公司有什麼幫助。

項目經歷怎麼寫?

簡歷上有一兩個項目經歷很正常,但是真正能把項目經歷很好的展示給面試官的非常少。對於項目經歷大家可以考慮從如下幾點來寫:

  1. 對項目整體設計的一個感受
  2. 在這個項目中你負責了什麼、做了什麼、擔任了什麼角色
  3. 從這個項目中你學會了那些東西,使用到了那些技術,學會了那些新技術的使用
  4. 另外項目描述中,最好可以體現自己的綜合素質,比如你是如何協調項目組成員協同開發的或者在遇到某一個棘手的問題的時候你是如何解決的又或者說你在這個項目用了什麼技術實現了什麼功能比如:用redis做緩存提高訪問速度和併發量、使用消息隊列削峰和降流等等。

專業技能該怎麼寫?

先問一下你自己會什麼,然後看看你意向的公司需要什麼。一般HR可能並不太懂技術,所以他在篩選簡歷的時候可能就盯著你專業技能的關鍵詞來看。對於公司有要求而你不會的技能,你可以花幾天時間學習一下,然後在簡歷上可以寫上自己瞭解這個技能。比如你可以這樣寫:

  1. Dubbo:精通
  2. Spring:精通
  3. Docker:掌握
  4. SOA分佈式開發 :掌握
  5. Spring Cloud:瞭解

其他的一些小tips

  1. 儘量避免主觀表述,少一點語義模糊的形容詞,儘量要簡潔明瞭,邏輯結構清晰。
  2. 注意排版(不需要花花綠綠的),儘量使用Markdown語法。
  3. 注意簡歷真實性,一定不要寫自己不會的東西,或者帶有欺騙性的內容
  4. 項目經歷建議以時間倒序排序,另外項目經歷不在於多,而在於有亮點。
  5. 如果內容過多的話,不需要非把內容壓縮到一頁,保持排版乾淨整潔就可以了。
  6. 簡歷最後最好能加上:“感謝您花時間閱讀我的簡歷,期待能有機會和您共事。”這句話,顯的你會很有禮貌。

下面就來說說面試時面試官所提問的技術性問題,每個人的面試時面試官所問到的問題都是會有所不同的。

Java 基礎知識

  1. 重載和重寫的區別
  2. String 和 StringBuffffer、StringBuilder 的區別是什麼?String 為什麼是不可變的?
  3. 自動裝箱與拆箱
  4. == 與 equals
  5. 關於 fifinal 關鍵字的一些總結
  6. Object類的常見方法總結
  7. Java 中的異常處理
  8. 獲取用鍵盤輸入常用的的兩種方法
  9. 接口和抽象類的區別是什麼
阿里大牛精心整理Java面試文檔:Spring+Linux+MySQL+Redis等

Java 集合框架

  1. Arraylist 與 LinkedList 異同
  2. ArrayList 與 Vector 區別
  3. HashMap的底層實現
  4. HashMap 和 Hashtable 的區別
  5. HashMap 和 Hashtable 的區別
  6. HashMap 的長度為什麼是2的冪次方
  7. HashMap 多線程操作導致死循環問題
  8. HashSet 和 HashMap 區別
  9. ConcurrentHashMap 和 Hashtable 的區別
  10. ConcurrentHashMap線程安全的具體實現方式/底層具體實現
  11. 集合框架底層數據結構總結
阿里大牛精心整理Java面試文檔:Spring+Linux+MySQL+Redis等

Java多線程

一 面試中關於 synchronized 關鍵字的 5 連擊

  1. 說一說自己對於 synchronized 關鍵字的瞭解
  2. 說說自己是怎麼使用 synchronized 關鍵字,在項目中用到了嗎
  3. 講一下 synchronized 關鍵字的底層原理
  4. 說說 JDK1.6 之後的synchronized 關鍵字底層做了哪些優化,可以詳細介紹一下這些優
  5. 化嗎
  6. 談談 synchronized和ReenTrantLock 的區別
阿里大牛精心整理Java面試文檔:Spring+Linux+MySQL+Redis等

二 面試中關於線程池的 5連擊

  1. 說說 synchronized 關鍵字和 volatile 關鍵字的區別
  2. 為什麼要用線程池?
  3. 實現Runnable接口和Callable接口的區別
  4. 執行execute()方法和submit()方法的區別是什麼呢?
  5. 如何創建線程池
阿里大牛精心整理Java面試文檔:Spring+Linux+MySQL+Redis等

三 面試中關於 Atomic 原子類的 4 連擊

  1. 介紹一下Atomic 原子類
  2. JUC 包中的原子類是哪4類?
  3. 講講 AtomicInteger 的使用
  4. 能不能給我簡單介紹一下 AtomicInteger 類的原理

AQS

  1. AQS 介紹
  2. AQS 原理分析
  3. AQS 原理概覽
  4. AQS 對資源的共享方式
  5. AQS底層使用了模板方法模式

計算機網絡常見面試點總結

  1. TCP、UDP 協議的區別
  2. 在瀏覽器中輸入url地址 ->> 顯示主頁的過程
  3. 各種協議與HTTP協議之間的關係
  4. HTTP長連接、短連接
  5. TCP 三次握手和四次揮手(面試常客)

Linux

  1. 簡單介紹一下 Linux 文件系統?
  2. 一些常見的 Linux 命令瞭解嗎?
  3. TCP、UDP 協議的區別
  4. Linux 中主要有哪幾種內核鎖?
  5. 怎樣申請大塊內核內存?
  6. 通過夥伴系統申請內核內存的函數有哪些?
  7. Linux 軟中斷和工作隊列的作用是什麼?

MySQL

  1. 說說自己對於 MySQL 常見的兩種存儲引擎:MyISAM與InnoDB的理解
  2. 數據庫索引瞭解嗎?
  3. 為什麼索引能提高查詢速度?
  4. 先從 MySQL 的基本存儲結構說起
  5. Mysql如何為表字段添加索引???
  6. Mysql 的技術特點是什麼?
  7. 對於大表的常見優化手段說一下
  8. 當MySQL單表記錄數過大時,數據庫的CRUD性能會明顯下降,一些常見的優化措施如下
  9. 與 Oracle 相比,Mysql 有什麼優勢?

Redis

  1. 為什麼要用 redis /為什麼要用緩存
  2. 為什麼要用 redis 而不用 map/guava 做緩存?
  3. redis 和 memcached 的區別
  4. redis 常見數據結構以及使用場景分析
  5. redis 設置過期時間
  6. redis 內存淘汰機制(MySQL裡有2000w數據,Redis中只存20w的數據,如何保證Redis中的數據都是熱點數據?)
  7. redis 持久化機制(怎麼保證 redis 掛掉之後再重啟數據可以進行恢復)
  8. 緩存雪崩和緩存穿透問題解決方案
  9. 如何保證緩存與數據庫雙寫時的數據一致性?
  10. 如何解決 Redis 的併發競爭 Key 問題

Spring

  1. Spring Bean 的作用域
  2. Spring 事務中的隔離級別
  3. Spring 事務中的事務傳播行為
  4. 使用 Spring 框架能帶來哪些好處?
  5. 什麼是控制反轉(IOC)?什麼是依賴注入?
  6. IOC 容器對 Bean 的生命週期:
  7. 簡述 AOP 和 IOC 概念 AOP:
  8. Spring 框架中都用到了哪些設計模式?
  9. 請舉例說明如何在 Spring 中注入一個 Java Collection?

消息隊列

  1. 說一下什麼是消息隊列
  2. 為什麼要用消息隊列
  3. 使用消息隊列帶來的一些問題
  4. 常見的消息隊列對比
  5. activemq 如果數據提交不成功怎麼辦(消息丟失)
  6. 如何解決消息重複問題
  7. 向不存在的 exchange 發 publish 消息會發生什麼?向不存在的queue 執行 consume 動作會發生什麼?
  8. 為什麼說保證 message 被可靠持久化的條件是 queue 和 exchange具有 durable 屬性,同時 message 具有 persistent 屬性才行?

Dubbo

  1. 說下什麼是 Dubbo?
  2. 什麼是 RPC?RPC原理是什麼
  3. 為什麼要用 Dubbo?
  4. 什麼是分佈式
  5. 為什麼要分佈式?
  6. 解釋一下Dubbo 工作原理
  7. 先來解釋一下什麼是負載均衡
  8. zookeeper宕機與dubbo直連的情況
  9. 再來看看 Dubbo 提供的負載均衡策略

數據結構

  1. 什麼是隊列
  2. 隊列的種類
  3. Java 集合框架中的隊列 Queue
  4. 什麼是 Set
  5. HashSet 和 TreeSet 底層數據結構
  6. 什麼是List的常見實現類
  7. 列的字符串類型可以是什麼?
  8. 說說B+樹和B樹的區別,優缺點等?

寫在最後

最後,再強調幾點:

  1. 一定要謹慎對待寫在簡歷上的東西,一定要對簡歷上的東西非常熟悉。因為一般情況下,面試官都是會根據你的簡歷來問的; 能有一個上得了檯面的項目也非常重要,這很可能是面試官會大量發問的地方,所以在面試之前好好回顧一下自己所做的項目
  2. 和麵試官聊基礎知識比如設計模式的使用、多線程的使用等等,可以結合具體的項目場景或者是自己在平時是如何使用的;
  3. 注意自己開源的Github項目,面試官可能會挖你的Github項目提問;
  4. 建議提前瞭解一下自己想要面試的公司的價值觀,判斷一下自己究竟是否適合這個公司。

另外,我個人覺得面試也像是一場全新的征程,失敗和勝利都是平常之事。所以,勸各位不要因為面試失敗而灰心、喪失鬥志。也不要因為面試通過而沾沾自喜,等待你的將是更美好的未來,繼續加油!


阿里大牛精心整理Java面試文檔:Spring+Linux+MySQL+Redis等

阿里大牛精心整理Java面試文檔:Spring+Linux+MySQL+Redis等

本文檔小編已經整理好了,適合面試前的突擊,有需要的讀者朋友可以關注一下小編。

資料獲取方式:轉發+後臺私信關鍵字(Java)即可獲取資料地址


分享到:


相關文章: