阿里等大廠Java面試彙總:心態+簡歷+50道高頻面試題+面試經驗總結

今天分享的面試經驗內容主要包含:

面試前的心態準備(3點建議)技術硬實力包含的範圍(50題目)個人簡歷突出和優化(3點優化步驟)個人軟實力的提升(6點提升維度)面試經驗總結(1點總結)面試專題加答案以及更多的架構資料免費領取(領取方式在文末)

一. 面試前的心態準備

心態可以影響你面試的準備,筆試的狀態,實力的發揮,可以影響一個面試過程的方方面面。心態崩了,就只剩運氣了,offer估計也就走遠了。

那怎麼調整自己的心態呢?

首先是要正視自己的能力,不輕視,不高估。

不高估就是要清楚自己的能力範圍,不是說期望過高不好,但過高的期望會讓你的心理變得脆弱,稍有不順心態就有崩掉的趨勢。因為面試畢竟有太大的偶然性,就算你達到了一定的水平,相應水平的崗位也不是百發百中的,更不要說身邊有那麼多大神和收割機,天天拿offer拒offer,對心理都是不小的衝擊。

不要總給自己消極的暗示,心態差了積極調整。

大多數的人,總暗示自己說什麼時間不多了,怎麼每天過這麼快效率怎麼這麼低。到筆試了,跟自己說這個算法太難了,肯定做不出來;臨到面試了,跟自己說千萬別問我linux內核,別問我分佈式,問我肯定完;面試過之後,沒有結果,就天天想肯定又掛了,唉我怎麼這麼菜。

如果這一系列的表現形成習慣,那心態這個係數最多0.5,能發揮出來的東西也都打了一半的折扣。凡事都不要太悲觀,一個offer沒拿到,正常情況是這個失敗的經歷產生的經驗和總結是會讓下一次的成功率提高的,千萬別因為這些消極的暗示,反而讓該有的提高都沒有了。

心態差的時候反而要停下你重複而沒有效率的工作,去調整一下。

對於身邊的同學,多交流,不比較。

有一些一起準備的好夥伴是件非常好的事情,不僅可以互相督促,而且可以在交流和分享的過程中取長補短。

對自己的水平有個很清楚的認識,並選擇自己合適的公司,好好準備自己的筆試、面試,不怕失敗,但保證每次面試都有收穫和提高,那滿意的offer早晚會來。

二.技術硬實力

實力我主要分為硬實力和軟實力。硬實力,也就是技術上的真實積累(當然產品崗的就是對於產品相關知識的積累)。

什麼是硬實力?我舉幾個例子,可以比對自己的技術優勢,這些知識不管是校招還是社招,建議都提前把算法、數據庫、編程語言等掌握牢固:

基礎知識:

算法和數據結構數組、鏈表、二叉樹、隊列、棧的各種操作(性能,場景)二分查找和各種變種的二分查找各類排序算法以及複雜度分析(快排、歸併、堆)各類算法題(手寫)理解並可以分析時間和空間複雜度。動態規劃(筆試回回有。。)、貪心。紅黑樹、AVL樹、Hash樹、Tire樹、B樹、B+樹。圖算法(比較少,也就兩個最短路徑算法理解吧)計算機網絡OSI7層模型(TCP4層)等

數據庫

數據庫(最多的還是mysql,Nosql有redis)索引(包括分類及優化方式,失效條件,底層結構)sql語法(join,union,子查詢,having,group by)引擎對比(InnoDB,MyISAM)數據庫的鎖(行鎖,表鎖,頁級鎖,意向鎖,讀鎖,寫鎖,悲觀鎖,樂觀鎖,以及加鎖的select sql方式)隔離級別,依次解決的問題(髒讀、不可重複讀、幻讀)事務的ACIDB樹、B+樹優化(explain,慢查詢,show profile)數據庫的範式。分庫分表,主從複製,讀寫分離。Nosql相關(redis和memcached區別之類的,如果你熟悉redis,redis還有一堆要問的)

操作系統:

進程通信IPC(幾種方式),與線程區別OS的幾種策略(頁面置換,進程調度等,每個裡面有幾種算法)互斥與死鎖相關的linux常用命令(問的時候都會給具體某一個場景)Linux內核相關(select、poll、epoll)

編程語言:

編程語言(這裡只說Java):Java基礎(面向對象、四個特性、重載重寫、static和final等等很多東西)集合(HashMap、ConcurrentHashMap、各種List,最好結合源碼看)併發和多線程(線程池、SYNC和Lock鎖機制、線程通信、volatile、ThreadLocal、CyclicBarrier、Atom包、CountDownLatch、AQS、CAS原理等等)JVM(內存模型、GC垃圾回收,包括分代,GC算法,收集器、類加載和雙親委派、JVM調優,內存洩漏和內存溢出)IO/NIO相關反射和代理、異常、Java8相關、序列化設計模式(常用的,jdk中有的)Web相關(servlet、cookie/session、Spring、Mybatis、Tomcat、Hibernate等)看jdk源碼。

這些都是技術硬實力的體現,當然,如果你是面試BAT架構師,這裡還會涉及到:

分佈式技術架構的知識體系:

CAP原理和BASE理論。Nosql與KV存儲(redis,hbase,mongodb,memcached等)服務化理論(包括服務發現、治理等,zookeeper、etcd、springcloud微服務、)負載均衡(原理、cdn、一致性hash)RPC框架(包括整體的一些框架理論,通信的netty,序列化協議thrift,protobuff等)消息隊列(原理、kafka,activeMQ,rocketMQ)分佈式存儲系統(GFS、HDFS、fastDFS)、存儲模型(skipList、LSM等)分佈式事務、分佈式鎖等

個人軟實力

軟實力主要就是指平時在語言溝通、邏輯思維、面試的積極性和主動性、簡歷的優化技巧等方便。

通過軟實力來突出自己的優勢,與硬實力的結合,才是你自己真正的實力體現。

溝通和邏輯思維能力:

對一個問題的表達方式,邏輯思維(像有些人的發言就讓人聽上去很有層次感,很舒服),溝通的層次感,善於短時間突出重點。

面試的積極性和主動性:

尤其是BAT,特別喜歡主動性和積極性的人才,主動性的人更加擅長於克服當前的困難,並把事情做好,在遇到挫折後,更容易調整好心態,且積極去推進項目。這一點,在面試的溝通過程中,有經驗的BAT面試官可以通過與你的交流細節,可以捕獲到部分你的性格優勢和劣勢。總之,主動性和樂觀性的人,更有利於今後的發展,這一點不僅僅適用於面試,更適用於今後的工作發展。

簡歷的準備:簡歷重點是突出自我介紹、擅長技能、項目經驗。自我介紹要做到一句話就能表述清楚自己的優勢,比如:學習能力(短時間熟練掌握技能)、個人履歷(BAT背景優勢)、積極努力(個人推動什麼項目等)。擅長技能:專業技能的描述詞無非就那麼幾種:精通、熟練、熟悉、瞭解。精通感覺一般還是不要寫,除非你在某個技術點上真的有足夠的把握,真正能做到精通一門語言、一個分佈式框架這才是精通。熟悉、熟練居多、精通是典型的金字塔頂部。總之,簡歷不要過於突出精通項數,而是突出精通的領域。項目經驗:突出自己的王牌項目,最有技術含量、挑戰和幫助最大一個項目講就足夠了,面試的過程中面試官也會重點讓你描述這個擅長的項目,提前模擬這個項目的講解順序和重點,而不是臨場講解。做一個靠譜且有責任心的人:

很多公司在內部的面試細則上面都會註明這一點,如果價值觀或是人品問題會直接否決。沒有一個面試官不想找一個技術出眾又有責任心的人,請相信我,責任心非常重要,更有利於今後的晉升。

最後,在你通過了硬實力和軟實力的考核後,剩下的就是緣分了,你的面試氣場與BAT面試官的匹配度,每一個面試官都希望找到與自己類似的求職人才,這也許就是聞味吧。

阿里等面試總結:

offer = 心態 * (硬實力 + 軟實力) + 緣分運氣,每一個人都是經歷不斷面試失敗再總結,再優化面試經驗,再提升技術深度,從而找到一份自己心儀的工作,以上就是我的分享,希望對你的BAT面試之旅有所幫助!

讀者福利

針對於還會準備免費的Java架構學習資料(裡面有高可用、高併發、高性能及分佈式、Jvm性能調優、MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)

為什麼某些人會一直比你優秀,是因為他本身就很優秀還一直在持續努力變得更優秀,而你是不是還在滿足於現狀內心在竊喜!

資料免費領取方式:轉發轉發後,關注我私信【架構資料】領取!

(部分資料如下)

資料免費領取方式:轉發轉發後,關注我私信【架構資料】領取!