2015年剛畢業的我,進入了一家小小的公司實習工作,在學校學了三年軟體開發的我,還是想去尋找一份網際網路行業的工作,這樣更能學以致用發揮自己的特長。一直到18年三月份,我辭掉已有的工作,北上去面試,且成功拿到offer,面試回來後,好多人問我,你憑什麼能拿到阿里的offer,你只不過是剛畢業工作兩年的小白。當時我只對他們笑了笑,以謙虛的語氣回答:運氣好運氣好!但其實並不是運氣好這麼簡單的,沒實力沒底氣你敢去阿里面試麼?我想大家一致的回答都是一樣的,“不敢去”!那我憑什麼才兩年經驗的小白會面上阿里,其實我是有底牌的。
那現在來聊一聊我所遇到的一些面試經歷,希望給各位尋求新機會的小夥伴一個參考。總共面完5家收了4個offer,應該算是比較成功的吧。
由於種種原因,博文中所涉及的公司均以代號標誌,且我能告訴大家的也只有面試題,其他的不便透露細節,希望大家理解。
寫出java中synchronized的使用方式。
Java中設定最大堆和最小堆記憶體的引數是什麼?
volatile的作用?
一道設計題
多個執行緒同時讀寫,讀執行緒的數量遠遠⼤於寫執行緒,你認為應該如何解決 併發的問題?你會選擇加什麼樣的鎖?
JAVA的AQS是否瞭解,它是⼲嘛的?
除了synchronized關鍵字之外,你是怎麼來保障執行緒安全的?
什麼時候需要加volatile關鍵字?它能保證執行緒安全嗎?
問題一:“請你自我介紹一下”
問題二:“你有什麼業餘愛好?”
問題三:“你認為你工作中的哪些方面是最重要的?”
問題四:“談談你的缺點”
問題五:“談一談你的一次失敗經歷”
問題六:“你為什麼選擇我們公司?”
問題七:“對這項工作,你有哪些可預見的困難?”
問題八:“我們為什麼要錄用你?”
問題十:“您在前一家公司的離職原因是什麼?”
mybatis怎麼防止SQL隱碼攻擊
Hibernate的快取機制
Hibernate一級快取
Hibernate二級快取
什麼樣的資料適合存放到第二級快取中
Mybatis和Hibernate的區別(優缺點)
redis的使用場景
Tomcat本身的引數你⼀般會怎麼調整?
如果有很多資料插⼊MYSQL 你會選擇什麼⽅式?
1. 你知道哪些或者你們線上使⽤什麼GC策略? 它有什麼優勢,適⽤於什麼 場景?
2. JAVA類載入器包括⼏種?它們之間的⽗⼦關係是怎麼樣的?雙親委派機 制是什麼意思?有什麼好處?
3. 如何⾃定義⼀個類載入器?你使⽤過哪些或者你在什麼場景下需要⼀個⾃ 定義的類載入器嗎?
4. 堆記憶體設定的引數是什麼? 5. Perm Space中儲存什麼資料? 會引起OutOfMemory嗎? 6. 做gc時,⼀個物件在記憶體各個Space中被移動的順序是什麼?
7. 你有沒有遇到過OutOfMemory問題?你是怎麼來處理這個問題的?處理 過程中有哪些收穫?
8. 1.8之後Perm Space有哪些變動? MetaSpace⼤⼩預設是⽆限的麼? 還是 你們會通過什麼⽅式來指定⼤⼩?
9. Jstack是⼲什麼的? Jstat呢? 如果線上程式週期性地出現卡頓,你懷疑可 能是gc導致的,你會怎麼來排查這個問題?執行緒⽇志⼀般你會看其中的什麼 部分?
10. StackOverFlow異常有沒有遇到過?⼀般你猜測會在什麼情況下被觸 發?如何指定⼀個執行緒的堆疊⼤⼩?⼀般你們寫多少?
● 簡述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. 定量分析
定量分析是對社會現象的數量特性、數量關係與數量變化的分析。資料是許多組織的重要組成部分,所以你的組織、分析、解釋和呈現資料能力是很重要的。不管是在做應用程式還是尋找不同的辦法來吸引使用者。特別說明下,招聘公司很重視組織資料和基於資料進行組織的能力。如果你有挖掘資料的能力,並有自己的見解,那麼在競爭中將很有優勢。(面試時,你可以帶上曾經做過的關於資料分析的專案)。
2. Excel
管理資料分析中最主要工具是什麼?Excel。Excel在工作中會經常遇到,而且公司不會花時間去教你怎樣使用Excel。所以,如果你能精通Excel,在錄取中也會佔有一定的優勢。
3. 創造性思維
當今企業界發展步伐異常快,招聘企業對那些有創新能力和能超越現狀的求職者很感興趣。他們希望自己的員工能夠有擴充性思維,不安於現狀,從第一天上班時起就能有與其他員工分享自己的想法,最好可以提高公司當前的工作系統。但是,創造性思維有點不好學習。
4. 溝通能力
一般情況下,招聘公司都想找一些溝通能力比較強的員工。因為公司日後需要你可以有效的與客戶進行電話、郵件及日常生活的交流,你的一言一行都將代表公司的形象。更重要的是,公司希望你能以簡潔專業的語言來表達自己的某些看法。所以,在面試過程中,多向招聘人員展示下你的溝通能力。
5. 謙遜的品格
有人看到謙遜會覺得奇怪,但是這個技能卻是招聘人員看中的重要技能之一。當然,招聘公司需要有自信、有激情,也要樂於學習的員工。在面試時,如果被要求分享自己的想法或主意的時候,大膽的說出來。如果被指出錯誤,虛心的接受。多問面試人員一些問題,比如公司的一些情況和應聘崗位的一些工作。
為什麼我面試五家公司有四家錄取了呢,以上五大技能不僅要擁有,技術還要過硬,不然以上的面試你不想過關。那從哪裡學習才能獲取過硬的技術以及過硬的膽識呢?以下便是我學習了這個課程體系,才是我有這麼過硬的技術以及過硬的膽識。
推薦一個交流學習群:537775426,裡面會分享一些資深架構師錄製的視訊錄影:有Spring,MyBatis,Netty原始碼分析,高併發、高效能、分散式、微服務架構的原理,JVM效能優化這些成為架構師必備的知識體系。還能領取免費的學習資源,目前受益良多,以下的課程體系圖也是在群裡獲取。
一、效能調優
二、原始碼解讀
三、分散式
四、微服務
五、團隊協作開發
六:B2C商城專案實戰