2年5個月13天,從外包到拿下阿里offer,沒想到屌絲也能有今天
開篇介紹
個人背景:
不說太多廢話,但起碼要讓你先對我有一個基本的了解。本人畢業(yè)于浙江某二本院校,算是科班出身,畢業(yè)后就進(jìn)了一家外包公司做開發(fā),當(dāng)然不是阿里的外包,具體什么公司就不透露了,在外包一呆就呆了整整2年多,直到現(xiàn)在才從外包離開,如今拿到阿里的offer準(zhǔn)備入職了。
闡述原因:
在外包公司的兩年里,作為一名菜雞,確實非常合格,技術(shù)沒什么長進(jìn),眼見也沒有提升,沒規(guī)劃沒未來,讓人實在焦慮,之所以開始改變自己也是家庭發(fā)生了變故,才讓自己開始思考人生。身邊很多人感嘆過,能從外包逆襲,算是傳奇,所以今天想要分享一下個人的經(jīng)歷,希望能夠鼓勵到一些與我有相似經(jīng)歷的同行。
注意:這次面試過程比較長,內(nèi)容繁多,在文章中我基本上簡述了,文章里的面試題完整版和我個人的總結(jié)方法經(jīng)驗(面試學(xué)習(xí)和刷題筆記),都整理有PDF完整版,有需要的可以私信我「成長」免費分享給你。

阿里一角
阿里巴巴Java崗面試題分享
1.HashMap 的內(nèi)部結(jié)構(gòu)?內(nèi)部原理?和 HashTable 的區(qū)別,假如發(fā)?了 hash 碰撞,如何設(shè)計能讓遍歷效率??
2.講一講講講 ConcurrentHashMap吧。
3.講一下JVM虛擬機(jī)內(nèi)存結(jié)構(gòu),以及它們的作?。
4.講講JVM的類加載過程&&雙親委派模型。
5.談?wù)凧ava的垃圾回收算法。
6.談?wù)凧ava垃圾回收的觸發(fā)條件。
7.synchronized和Lock的區(qū)別。
8.volatile的作?,為什么會出現(xiàn)變量讀取不?致的情況,與 synchronized 的區(qū)別?
9.++i 在多線程環(huán)境下是否存在問題,怎么解決?
10.講一講Thread.sleep() 和 Thread.yield() 區(qū)別?
11.講講常?的容器類?
12.如何去除 ArrayList 的重復(fù)元素?
直接采? HashSet 即可。作為它的參數(shù),然后再 addAll。但這種?式不能保證原來的順序,如果要求順序,可以使? LinkedHashSet 即可。
13.講講 Java 的泛型擦除,泛型主要是為了解決什么問題?如何?泛型做 Json 的解析的?
14.談?wù)?Java 的 Error 和 Exception 的區(qū)別聯(lián)系。
Error 和 Exception 均集成? Throwable,但 Error ?般指的是和虛擬機(jī)相關(guān)的問題,?如系統(tǒng)崩潰,虛擬機(jī)錯誤,OOM 等,遇到這樣的錯誤,程序應(yīng)該被終?。? Exception 表示程序可以處理的異常,可以捕獲并且可能恢復(fù)。
15.說一下軟引?和弱引?的區(qū)別?
16.成員變量和靜態(tài)?法可以被重寫么?重寫的規(guī)則是怎樣的?
17.內(nèi)部類訪問局部變量的時候,為什么變量必須加上fifinal修飾符?
因為?命周期不同。
18.什么情況會造成內(nèi)存泄漏?
19.什么是線程死鎖,如何解決?
20.十億條淘寶購買記錄,怎么獲取出現(xiàn)最多的前十個 ?
這是一道典型的有限內(nèi)存的海量數(shù)據(jù)處理的題目。一般這類題目的解答無非是以下幾種:
分治,hash映射,堆排序,雙層桶劃分,Bloom Filter,bitmap,數(shù)據(jù)庫索引,mapreduce等。
具體情形都有很多不同的方案。這類題目可以到網(wǎng)上搜索一下,了解下套路,后面就基本都會了。
21.說一下Innodb和MySIAM的區(qū)別
22.說一下jvm內(nèi)存模型,介紹一下你了解的垃圾收集器
其實并沒有jvm內(nèi)存模型的概念。應(yīng)該是Java內(nèi)存模型或者jvm內(nèi)存結(jié)構(gòu),這里面試者一定要聽清楚問的是哪個,再回答。
23.如何訪問鏈表中間節(jié)點
對于這個問題,我們首先能夠想到的就是先遍歷一遍整個的鏈表,然后計算出鏈表的長度,進(jìn)而遍歷第二遍找出中間位置的數(shù)據(jù)。這種方式非常簡單。
若題目要求只能遍歷一次鏈表,那又當(dāng)如何解決問題?
可以采取建立兩個指針,一個指針一次遍歷兩個節(jié)點,另一個節(jié)點一次遍歷一個節(jié)點,當(dāng)快指針遍歷到空節(jié)點時,慢指針指向的位置為鏈表的中間位置,這種解決問題的方法稱為快慢指針方法。
23.HR問
從技術(shù)角度來說,你覺得你跟前同事比怎么樣?
說一下自己的個人優(yōu)勢。
工作中覺得哪方面欠缺?
為什么想來阿里?阿里的什么方面吸引了你?
面試題私信我口令“面試題”領(lǐng)取word文檔版(含詳細(xì)答案解析)
面試總結(jié)及建議
每一次Java面試,其實都是一次學(xué)習(xí)機(jī)會,是對自己技術(shù)知識棧的梳理、考核、復(fù)盤。我們應(yīng)該抱著學(xué)習(xí)的態(tài)度,認(rèn)真對待,找到自己比較薄弱的環(huán)節(jié),盡快去查漏補缺學(xué)習(xí)鞏固。對于面試來說,其實也沒有太多的技巧可言,面試官主要看重的就是個人能力,無非就是兩個方面:
技術(shù)廣度
技術(shù)深度
外包CRUD屌絲,是怎樣逆襲的?
外包出身的我,究竟有多么菜,多么屌絲呢?還在外包的我,面試時被問到什么是成員變量,我是什么都不知道,相信這種程度大家應(yīng)該有所感受了。
那作為一個外包CRUD屌絲,我是怎么做到逆襲的呢?
注意:下文主要是我個人的總結(jié)方法經(jīng)驗(面試學(xué)習(xí)和刷題筆記),都整理有PDF完整版,有需要的可以私信我「成長」免費分享給你。
01 梳理知識體系,學(xué)會查漏補缺

關(guān)于知識體系的梳理,我個人主要分為以下5個部分,有針對性的,將這5個部分逐步擊破,那么搞定面試是基本沒什么問題了。
并發(fā)編程:多線程,高并發(fā),CAS,鎖,容器,線程池底層
性能調(diào)優(yōu):Mysql,IO及網(wǎng)絡(luò)調(diào)優(yōu),算法調(diào)優(yōu),JVM
Spring全家桶:Spring,SpringMVC,MyBatis,IOC,AOP
緩存數(shù)據(jù)庫:Redis,mongoDB,MySQL
分布式&微服務(wù):SpringBoot,SpringCloud,docker,maven
02 根據(jù)要點,逐個擊破(根據(jù)大綱內(nèi)容來進(jìn)行復(fù)習(xí))
1.并發(fā)編程(核心技術(shù)筆記)
Java多線程技能
對象及變量的并發(fā)訪問
線程間通信
Lock的使用
定時器Timer
單例模式與多線程
拾遇增補


2.性能調(diào)優(yōu)(Java性能調(diào)優(yōu)+MySQL調(diào)優(yōu)+JVM調(diào)優(yōu))

3.Spring全家桶(Spring全家桶學(xué)習(xí)腦圖+SpringBoot使用筆記+源碼深度解析)
Spring學(xué)習(xí)思維腦圖(Xmind)

Spring使用筆記+實戰(zhàn)文檔


4.緩存數(shù)據(jù)庫(MySQL+Redis+mongoDB)

03 最后看面試題來舉一反三(刷題刷題刷題,重要事情說三遍)
關(guān)于面試刷題也是有方法可言的,建議最好是按照專題來進(jìn)行,然后由基礎(chǔ)到高級,由淺入深來,效果會更好。當(dāng)然,這些內(nèi)容我也全部整理在一份pdf文檔內(nèi),分成了以下幾大專題:
Java基礎(chǔ)部分

算法與編程

數(shù)據(jù)庫部分

流行的框架與新技術(shù)(Spring+SpringCloud+SpringCloudAlibaba)

這份面試文檔當(dāng)然不止這些內(nèi)容,實際上像JVM、設(shè)計模式、ZK、MQ、數(shù)據(jù)結(jié)構(gòu)等其他部分的面試內(nèi)容均有涉及,因為文章篇幅,就不全部在這里闡述了,需要的可以私信“面試題”免費下載完整版。
寫在文末
作為一名程序員,階段性的學(xué)習(xí)是必不可少的,而且需要保持一定的持續(xù)性,這次在這個階段內(nèi),我對一些重點的知識點進(jìn)行了系統(tǒng)的復(fù)習(xí),一方面鞏固了自己的基礎(chǔ),另一方面也提升了自己的知識廣度和深度。
最后提醒一下哦,如果你想要學(xué)習(xí),卻無奈于沒有干貨學(xué)習(xí)資料,以上所有的資料內(nèi)容都可以免費分享給你,只需你多多支持一下即可
——“轉(zhuǎn)發(fā)文章,關(guān)注我,然后私信口令「外包」獲取免費下載方式”。
本文就是愿天堂沒有BUG給大家分享的內(nèi)容,大家有收獲的話可以分享下,想學(xué)習(xí)更多的話可以到微信公眾號里找我,我等你哦。
