從2019.04.01入職阿里後,工作一直比較繁忙,近一年時間幾乎沒寫什麼回答,近來這篇文章點贊數一直增加,想必最近求職季,大家對此類文章需求更甚,結合自己近一年在工作上又有些新的領悟,決定在原文章基礎上增添一些內容,和大家分享下,如有時間再單獨寫一篇罷。【關於面試題問題,明天更新答案】
另外整理了一份最新的Java面試題和核心知識點,可以幫助大家提升和進階技術,需要的朋友可以點擊:點這個,點這個,暗號:csdn。
之前的回答(後面面試題部分)現在回想起來,如果面試P5、P6或許可以,但再向上,光憑這些是不夠的,下面講下P6+ 到P7需要的一些能力(只講思路):
計算機核心課程:計算機網絡、數據結構、計算機組成原理、計算機操作系統,這幾門課需要深入理解(重點),jdk源碼、挑一些框架深入看一下(如Spring,Netty)、常用設計模式、一些中間件,如MQ、ES 、數據庫:mysql、redis等,以上說的這些都是基本功,學習時可先實踐,然後反向去看下相關理論知識,把這些東西搞得明明白白,並在工程上變現。
你當下在做的東西技術棧怎樣?其中優缺點?如果從零開始,能不能重新將其實現?當前系統的使用方是誰?用戶量多大?用戶集中使用的時間點?系統落下了哪些數據?這些數據的使用方是誰?系統依賴方是誰?這些最好自己能從技術、產品、業務角度去畫下相關流程圖,不然無論是面試還是平時工作,和不同方去對需求、乃至從技術去實現相關功能等,方方面面都會非常被動。
這一點自己也在總結之中,和產品、業務、運營、技術打交道,要知道自己職責邊界,弄清楚哪些是需要自己做的,哪些是該其它方做的,交流起來不卑不亢。這一點涉及核心競爭力,哪天單獨寫一篇吧!
近來一直在面試,但半年時間,部門只進了三個人,和其它同事交流,總結下這些面試者一些共性,最想和他們講的一句話就是:好好的把基礎東西看看!過去在其它公司,主要注重的是工程業務能力,可以這麼說:將業務代碼寫好績效說不定就可以了,但在阿里是遠遠不夠的,寫好業務代碼,績效只能及格,其它KPI就看業務之外做了什麼?據說Dubbo框架就是阿里員工爲了KPI做出來的(只是聽說)
java只是一個工具,作爲工程師,要對整個計算機體系有相當程度掌握;其次要立足於工程需求,思考解決方案,即使面試java崗位,脫離java要問的還有很多:數據結構(數組,鏈表,樹,圖,排序…)、算法、緩存應用、mysql數據庫底層原理、spring源碼(至少AOP和IOC部分)、消息隊列設計與使用,以及分佈式環境下這些中間件的部署問題…
以上都熟悉後,還要認識到:科學分爲基礎科學和應用科學,工程師要深入理解應用的技術底層實現原理,其實從個人發展來說,應用必不可少,但是基礎是遠遠重於應用的,只是對於公司來講需要迅速產出,在互聯網發展的風口,一般公司都首選熟練工,但以後,其實這段時間寒冬已經看出來了,招人比以前嚴格多了,公司更加註重面試者的基礎知識,預計以後對基礎知識考察會越來越嚴格。
上面的話就是爲了提醒大家:java只是一個工具;應用必不可少,但是基礎知識是安身立命以及決定自己上限的東西。
自己當初找工作時參加過衆多一線互聯網公司的Java研發面試,這段時間處於寒冬,然而前幾天跳槽找工作,兩天面了3家,已經拿了兩個offer,覺得可以和大家分享下:
下面爲拼多多、餓了麼、螞蟻金服、哈囉出行、攜程、餓了麼、2345、百度等公司給我留下較深印象的一些java面試題
其它經常問的HashMap底層實現原理,常規的多線程問題考的太多了,沒什麼新意就不寫了
平時不能光抱着應用Java的目的去學習,要深入瞭解每個知識點背後底層實現原理,爲什麼這麼設計,比如問爛的HashMap 既然有hash進行排位還需要equals()作用是什麼?就這個問題照樣能問倒一些人,所以一定要摳細節,真的把每個知識點搞懂。
提供免費的Java架構學習資料,學習技術內容包含有:Spring,Dubbo,MyBatis, RPC, 源碼分析,高併發、高性能、分佈式,性能優化,微服務 高級架構開發等等。
還有Java核心知識點+全套架構師學習資料和視頻+一線大廠面試寶典+面試簡歷模板可以領取+阿里美團網易騰訊小米愛奇藝快手嗶哩嗶哩面試題+Spring源碼合集+Java架構實戰電子書+2020年最新大廠面試題。
作者:ZO01鏈接:https://www.zhihu.com/question/60949531/answer/579002882