1. 程式人生 > 資料庫 >阿里大牛精心整理Java面試文件:Spring+Linux+MySQL+Redis等

阿里大牛精心整理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都說我們不看重學歷(騙你的!),但是如果你的學校不出眾的話,很難在一堆簡歷中脫穎而出,除非你的簡歷上有特別的亮點,比如:某某大廠的實習經歷、獲得了某某大賽的獎等等。

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

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

  3. 將自己的專案經歷完美的展示出來非常重要。

你必須知道的兩大法則

①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. 介面和抽象類的區別是什麼

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-f8A35YNn-1610956508269)(https://upload-images.jianshu.io/upload_images/22934207-d7616a8ac0763b4b?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

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等

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

資料獲取方式:點贊+或者即掃描圖中的即二維碼新增即可獲取資料地址
微信二維碼.gif