工作2年半跳槽面試阿里,成功拿到offer,憑什麼?

java人生發表於2018-09-20

2015年剛畢業的我,進入了一家小小的公司實習工作,在學校學了三年軟體開發的我,還是想去尋找一份網際網路行業的工作,這樣更能學以致用發揮自己的特長。一直到18年三月份,我辭掉已有的工作,北上去面試,且成功拿到offer,面試回來後,好多人問我,你憑什麼能拿到阿里的offer,你只不過是剛畢業工作兩年的小白。當時我只對他們笑了笑,以謙虛的語氣回答:運氣好運氣好!但其實並不是運氣好這麼簡單的,沒實力沒底氣你敢去阿里面試麼?我想大家一致的回答都是一樣的,“不敢去”!那我憑什麼才兩年經驗的小白會面上阿里,其實我是有底牌的。

那現在來聊一聊我所遇到的一些面試經歷,希望給各位尋求新機會的小夥伴一個參考。總共面完5家收了4個offer,應該算是比較成功的吧。

由於種種原因,博文中所涉及的公司均以代號標誌,且我能告訴大家的也只有面試題,其他的不便透露細節,希望大家理解。

面試題 A公司 寫出java中synchronized的使用方式。

Java中設定最大堆和最小堆記憶體的引數是什麼?

volatile的作用?

一道設計題

多個執行緒同時讀寫,讀執行緒的數量遠遠⼤於寫執行緒,你認為應該如何解決 併發的問題?你會選擇加什麼樣的鎖?

JAVA的AQS是否瞭解,它是⼲嘛的?

除了synchronized關鍵字之外,你是怎麼來保障執行緒安全的?

什麼時候需要加volatile關鍵字?它能保證執行緒安全嗎?

B公司 問題一:“請你自我介紹一下”

問題二:“你有什麼業餘愛好?”

問題三:“你認為你工作中的哪些方面是最重要的?”

問題四:“談談你的缺點”

問題五:“談一談你的一次失敗經歷”

問題六:“你為什麼選擇我們公司?”

問題七:“對這項工作,你有哪些可預見的困難?”

問題八:“我們為什麼要錄用你?”

問題十:“您在前一家公司的離職原因是什麼?”

C公司 mybatis怎麼防止SQL隱碼攻擊

Hibernate的快取機制

Hibernate一級快取

Hibernate二級快取

什麼樣的資料適合存放到第二級快取中

Mybatis和Hibernate的區別(優缺點)

redis的使用場景

Tomcat本身的引數你⼀般會怎麼調整?

如果有很多資料插⼊MYSQL 你會選擇什麼⽅式?

D公司

  1. 你知道哪些或者你們線上使⽤什麼GC策略? 它有什麼優勢,適⽤於什麼 場景?

  2. JAVA類載入器包括⼏種?它們之間的⽗⼦關係是怎麼樣的?雙親委派機 制是什麼意思?有什麼好處?

  3. 如何⾃定義⼀個類載入器?你使⽤過哪些或者你在什麼場景下需要⼀個⾃ 定義的類載入器嗎?

  4. 堆記憶體設定的引數是什麼? 5. Perm Space中儲存什麼資料? 會引起OutOfMemory嗎? 6. 做gc時,⼀個物件在記憶體各個Space中被移動的順序是什麼?

  5. 你有沒有遇到過OutOfMemory問題?你是怎麼來處理這個問題的?處理 過程中有哪些收穫?

  6. 1.8之後Perm Space有哪些變動? MetaSpace⼤⼩預設是⽆限的麼? 還是 你們會通過什麼⽅式來指定⼤⼩?

  7. Jstack是⼲什麼的? Jstat呢? 如果線上程式週期性地出現卡頓,你懷疑可 能是gc導致的,你會怎麼來排查這個問題?執行緒⽇志⼀般你會看其中的什麼 部分?

  8. StackOverFlow異常有沒有遇到過?⼀般你猜測會在什麼情況下被觸 發?如何指定⼀個執行緒的堆疊⼤⼩?⼀般你們寫多少?

E公司 ● 簡述synchronized?Object;Monitor機制;

● 簡述happen-before規則 ;

● JUC和Object ; Monitor機制區別是什麼 ; 簡述AQS原理 ;

● 簡述DCL失效原因,解決方法 ;

● 簡述nio原理 ;

● jvm執行時資料區域有哪幾部分組成,各自作用 ;

● gc演算法有哪些 ; gc收集器有哪些 ;

● 簡述class載入各階段過程 ; class ; loader有哪些模型 ;

● 簡述常用的JDK命令列工具 ;

● 簡述位元組碼檔案組成 ;

● 講講你平常是如何針對具體的SQL做優化 ;

● mysql的儲存引擎有哪些,區別 ;

● gc:記憶體模型;

● gc: 垃圾回收 ;

● 多執行緒:如何實現一個定時排程和迴圈排程的工具類。但提交任務處理不過來的時候,拒絕機制應該如何處理 ; 執行緒池預設有哪幾種拒絕機制 ;

● 多執行緒: 如何實現一個ThreadLocal ;

● 說說你瞭解的一個執行緒安全佇列 ;

● Atomic包的實現原理是什麼 ;

● CAS又是怎麼保證原子性的 ;

● string分析1000次迴圈subString用了多少記憶體 ;

我面試E公式時是最吃力的,問的好多問題,反正他想到的都會問,由於問題太多,我也只能憑記憶羅列出這麼一點點出來,希望能體諒。

打動面試官的五大技能

  1. 定量分析

定量分析是對社會現象的數量特性、數量關係與數量變化的分析。資料是許多組織的重要組成部分,所以你的組織、分析、解釋和呈現資料能力是很重要的。不管是在做應用程式還是尋找不同的辦法來吸引使用者。特別說明下,招聘公司很重視組織資料和基於資料進行組織的能力。如果你有挖掘資料的能力,並有自己的見解,那麼在競爭中將很有優勢。(面試時,你可以帶上曾經做過的關於資料分析的專案)。

  1. Excel

管理資料分析中最主要工具是什麼?Excel。Excel在工作中會經常遇到,而且公司不會花時間去教你怎樣使用Excel。所以,如果你能精通Excel,在錄取中也會佔有一定的優勢。

  1. 創造性思維

當今企業界發展步伐異常快,招聘企業對那些有創新能力和能超越現狀的求職者很感興趣。他們希望自己的員工能夠有擴充性思維,不安於現狀,從第一天上班時起就能有與其他員工分享自己的想法,最好可以提高公司當前的工作系統。但是,創造性思維有點不好學習。

  1. 溝通能力

一般情況下,招聘公司都想找一些溝通能力比較強的員工。因為公司日後需要你可以有效的與客戶進行電話、郵件及日常生活的交流,你的一言一行都將代表公司的形象。更重要的是,公司希望你能以簡潔專業的語言來表達自己的某些看法。所以,在面試過程中,多向招聘人員展示下你的溝通能力。

  1. 謙遜的品格

有人看到謙遜會覺得奇怪,但是這個技能卻是招聘人員看中的重要技能之一。當然,招聘公司需要有自信、有激情,也要樂於學習的員工。在面試時,如果被要求分享自己的想法或主意的時候,大膽的說出來。如果被指出錯誤,虛心的接受。多問面試人員一些問題,比如公司的一些情況和應聘崗位的一些工作。

為什麼我面試五家公司有四家錄取了呢,以上五大技能不僅要擁有,技術還要過硬,不然以上的面試你不想過關。那從哪裡學習才能獲取過硬的技術以及過硬的膽識呢?以下便是我學習了這個課程體系,才是我有這麼過硬的技術以及過硬的膽識。

推薦一個交流學習群: 685167672 裡面會分享一些資深架構師錄製的視訊錄影:有Spring,MyBatis,Netty原始碼分析,高併發、高效能、分散式、微服務架構的原理,JVM效能優化這些成為架構師必備的知識體系。還能領取免費的學習資源,目前受益良多,以下的課程體系圖也是在群裡獲取。

推薦課程體系: 一、原始碼分析

二、分散式架構

三、微服務

四、效能優化

五、Java工程化

相關文章