2015年剛畢業的我,進入了一家小小的公司實習工做,在學校學了三年軟件開發的我,仍是想去尋找一份互聯網行業的工做,這樣更能學以至用發揮本身的特長。一直到18年三月份,我辭掉已有的工做,北上去面試,且成功拿到offer,面試回來後,好多人問我,你憑什麼能拿到阿里的offer,你只不過是剛畢業工做兩年的小白。當時我只對他們笑了笑,以謙虛的語氣回答:運氣好運氣好!但其實並非運氣好這麼簡單的,沒實力沒底氣你敢去阿里面試麼?我想你們一致的回答都是同樣的,「不敢去」!那我憑什麼才兩年經驗的小白會面上阿里,其實我是有底牌的。java
那如今來聊一聊我所遇到的一些面試經歷,但願給各位尋求新機會的小夥伴一個參考。總共面完5家收了4個offer,應該算是比較成功的吧。mysql
因爲種種緣由,博文中所涉及的公司均以代號標誌,且我能告訴你們的也只有面試題,其餘的不便透露細節,但願你們理解。面試
寫出java中synchronized的使用方式。redis
Java中設置最大堆和最小堆內存的參數是什麼?算法
volatile的做用?sql
一道設計題緩存
多個線程同時讀寫,讀線程的數量遠遠⼤於寫線程,你認爲應該如何解決 併發的問題?你會選擇加什麼樣的鎖?安全
JAVA的AQS是否瞭解,它是⼲嘛的?性能優化
除了synchronized關鍵字以外,你是怎麼來保障線程安全的?mybatis
何時須要加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. 謙遜的品格
有人看到謙遜會以爲奇怪,可是這個技能倒是招聘人員看中的重要技能之一。固然,招聘公司須要有自信、有激情,也要樂於學習的員工。在面試時,若是被要求分享本身的想法或主意的時候,大膽的說出來。若是被指出錯誤,虛心的接受。多問面試人員一些問題,好比公司的一些狀況和應聘崗位的一些工做。
爲何我面試五家公司有四家錄取了呢,以上五大技能不只要擁有,技術還要過硬,否則以上的面試你不想過關。那從哪裏學習才能獲取過硬的技術以及過硬的膽識呢?如下即是我學習了這個課程體系,纔是我有這麼過硬的技術以及過硬的膽識。
推薦一個交流學習羣:251981998 裏面會分享一些資深架構師錄製的視頻錄像:有Spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化這些成爲架構師必備的知識體系。還能領取免費的學習資源,目前受益良多,如下的課程體系圖也是在羣裏獲取。
1、性能調優
2、源碼解讀
3、分佈式
4、微服務
5、團隊協做開發
六:B2C商城項目實戰