本文來(lái)自作者投稿(原作者:小胖兒),原作者是一位2021屆本科畢業(yè)生,就讀于一所雙非(非985、非211)院校,在今年2月份的時(shí)候,我曾經(jīng)幫他指導(dǎo)過(guò)簡(jiǎn)歷,并且根據(jù)他的簡(jiǎn)歷內(nèi)容幫他提了一些可能會(huì)問(wèn)到的問(wèn)題。


          4月份的時(shí)候說(shuō)是已經(jīng)通過(guò)了阿里的四面,最近又得知已經(jīng)順利的拿到了阿里的Offer,非常為他感到高興。他還順便總結(jié)了一下自己面試經(jīng)歷,介紹了一下自己是如何準(zhǔn)備的,也希望能夠給大家?guī)?lái)一些幫助。

          以下是他的原文內(nèi)容,我也對(duì)其中的部分內(nèi)容做了些批注。

          前言


          前兩天,我收到了阿里巴巴的暑假實(shí)習(xí)offer,從學(xué)長(zhǎng)內(nèi)推開(kāi)始面試到拿到最后offer經(jīng)歷了4面技術(shù)、一面交叉面和一面HR面。經(jīng)過(guò)了漫長(zhǎng)的等待和幾次幾乎折磨的面試之后,終于拿到了暑期實(shí)習(xí)offer。


          H哥:阿里的校園招聘一般會(huì)經(jīng)歷4-5輪的面試,大概會(huì)持續(xù)一個(gè)月左右,每一輪結(jié)束之后到下一輪面試的時(shí)間一半不會(huì)超過(guò)兩周,如果等待時(shí)間過(guò)長(zhǎng),不用著急,可以聯(lián)系一下自己的內(nèi)推人,他們可以幫忙查看進(jìn)度。

          自我介紹


          本人來(lái)自西南某雙非本科學(xué)校,在校學(xué)的專業(yè)是物聯(lián)網(wǎng)工程。我的專業(yè)與Java開(kāi)發(fā)關(guān)系不大,學(xué)校也只教過(guò)一些簡(jiǎn)單的編程課,其余的編程相關(guān)知識(shí)都是自己在課余時(shí)間在實(shí)驗(yàn)室學(xué)習(xí)和自學(xué)的。技術(shù)不是大牛,項(xiàng)目做得多但是大部分都是自己練手的小項(xiàng)目或者一些有意思的小項(xiàng)目,沒(méi)有接觸過(guò)真正意義上的大項(xiàng)目。平時(shí)沒(méi)事的時(shí)候喜歡逛一逛微信公眾號(hào)、簡(jiǎn)書(shū)、掘進(jìn)等平臺(tái),看一看技術(shù)類文章,自己也偶爾寫過(guò)一些文章。在校期間在實(shí)驗(yàn)室的時(shí)間偏多,喜歡寫代碼的過(guò)程和攻克難題的過(guò)程。

          H哥:和本人的經(jīng)歷有點(diǎn)像,我也是畢業(yè)于某雙非本科學(xué)校,相同點(diǎn)都是會(huì)利用自己大學(xué)的課余時(shí)間,去鉆研代碼。現(xiàn)在看來(lái),真的要感謝那個(gè)時(shí)候努力的自己。

          學(xué)習(xí)過(guò)程

          Java基礎(chǔ)最開(kāi)始是在菜鳥(niǎo)教程和其他的一些教程網(wǎng)站上自學(xué)的,后來(lái)又通過(guò)閱讀《Java編程思想》、《Effective
          Java》、Hollis大神的“成神之路”系列文章等強(qiáng)化鞏固Java編程基礎(chǔ)。對(duì)于Java基礎(chǔ)一定要學(xué)的扎實(shí),這是編程的基本功,和練武功時(shí)候的扎馬步一樣,雖然枯燥但是必須扎實(shí)。

          H哥:沒(méi)錯(cuò),Java基礎(chǔ)一定要扎實(shí),這是基本功,如果基礎(chǔ)不扎實(shí),基本沒(méi)有可能通過(guò)阿里的前幾輪技術(shù)面。


          框架方面最開(kāi)始是實(shí)驗(yàn)室老師讓學(xué)習(xí)jfinal框架(但是當(dāng)時(shí)看到網(wǎng)上很多地方都在說(shuō)spring,自己一直沒(méi)有去主動(dòng)學(xué)習(xí)),后來(lái)我的人生導(dǎo)師讓我去學(xué)習(xí)SpringBoot和Vue這兩個(gè)框架,由于之前有框架學(xué)習(xí)經(jīng)驗(yàn),且這兩個(gè)框架對(duì)新手很友好,學(xué)習(xí)過(guò)程很快。當(dāng)時(shí)學(xué)習(xí)也就是從網(wǎng)上找了幾個(gè)系列文章一邊看一邊學(xué),然后在開(kāi)始學(xué)習(xí)的兩周之內(nèi)做了一個(gè)留言板(做了兩版,一版前后端分離,一版使用thymeleaf)。


          JVM方面,大二下學(xué)期買了《深入理解Java虛擬機(jī)》,那時(shí)候第一遍閱讀,里面幾乎所有東西都不懂,后來(lái)大三又讀了一遍,復(fù)習(xí)面試的時(shí)候又讀了一遍,對(duì)書(shū)中的知識(shí)終于有了一點(diǎn)點(diǎn)認(rèn)識(shí)。除了閱讀這本書(shū),其他時(shí)候還經(jīng)常瀏覽一些面經(jīng),然后根據(jù)面經(jīng)中的JVM問(wèn)題來(lái)查閱資料,了解JVM相關(guān)知識(shí)。

          Java并發(fā)編程,大三從B站上找了一個(gè)并發(fā)編程的教程,后來(lái)自己又買了一本《Java高并發(fā)程序設(shè)計(jì)》,這本書(shū)的前半部分看了2、3遍,對(duì)高并發(fā)有了上一定的認(rèn)識(shí)。

          設(shè)計(jì)模式也是一直在B站上找視頻學(xué)習(xí),同時(shí)網(wǎng)上查閱資料對(duì)設(shè)計(jì)模式進(jìn)一步理解。

          以上就是我的整個(gè)大學(xué)期間的學(xué)習(xí)過(guò)程,學(xué)習(xí)過(guò)程中也一直在做項(xiàng)目,從項(xiàng)目中發(fā)現(xiàn)錯(cuò)誤并改正,從重構(gòu)中找到更合適的解決方式,從調(diào)試中發(fā)現(xiàn)代碼的真正運(yùn)行原理
          才是最關(guān)鍵的。

          H哥:我當(dāng)年準(zhǔn)備校招的時(shí)候,也是看了很多書(shū)籍,還有重點(diǎn)看了很多面經(jīng),然后自己通過(guò)書(shū)籍或者博客去學(xué)習(xí)。

          面試準(zhǔn)備

          首先準(zhǔn)備校招之前一定是要好好準(zhǔn)備的,長(zhǎng)期的就是自己的編程基本功以及對(duì)各個(gè)方面知識(shí)點(diǎn)的了解程度,短期的就是突破一下自己不會(huì)的知識(shí)點(diǎn)。

          我是投簡(jiǎn)歷之前一個(gè)半月就開(kāi)始做準(zhǔn)備了,首先就是刷leetcode,算法這一關(guān)還是比較重要,而且阿里還有筆試成績(jī),面試的時(shí)候也會(huì)問(wèn)到一些不是太難的筆試題;

          然后就是多找?guī)灼娼?jīng),看看學(xué)長(zhǎng)學(xué)姐當(dāng)初面試的時(shí)候面試官都問(wèn)了哪些問(wèn)題,如果遇到會(huì)的,自己嘗試回答一遍,如果遇到不會(huì)的,那就去學(xué)習(xí)一下;


          不過(guò)網(wǎng)上找的面經(jīng)可能因?yàn)榇蠹业膶W(xué)習(xí)過(guò)程不一樣,找到類似的面經(jīng)的概率個(gè)人感覺(jué)不太大,我恰巧在H大的知識(shí)星球里面,就找H大做了一下簡(jiǎn)歷指導(dǎo)(不是在打廣告,是真心感謝H大);

          最后還是在H大的知識(shí)星球里面找到了一個(gè)很完整的Java面試題及答案的文檔(付費(fèi)資源,但是很值)用來(lái)做復(fù)習(xí)資料。

          面試過(guò)程

          第一次技術(shù)面(60min)

          * 說(shuō)一說(shuō)你使用的是什么樣的線程池,自定義線程池的幾個(gè)參數(shù)是什么
          * 說(shuō)一說(shuō)線程池的執(zhí)行流程
          * 你的項(xiàng)目中定義的核心線程數(shù)、最大線程數(shù)和隊(duì)列大小是如何定義的?為什么這樣定義?(這道題根絕我導(dǎo)師給我說(shuō)是一個(gè)加分項(xiàng))
          * 在項(xiàng)目中如何防止超賣現(xiàn)象
          * 你的下訂單的sql語(yǔ)句如何編寫的?(考察MySQL的樂(lè)觀鎖)
          * 如果有用戶反饋說(shuō)整個(gè)系統(tǒng)的反饋比較慢,你是如何排查和如何解決問(wèn)題的?
          * 影響系統(tǒng)響應(yīng)慢的原因有哪些?
          * 算法題:給定一個(gè)無(wú)序數(shù)組和一個(gè)目標(biāo)值,找出數(shù)組中兩個(gè)數(shù)之和等于目標(biāo)值的所有組合,并指出其時(shí)間復(fù)雜度。(很簡(jiǎn)單的一個(gè)算法題,leetcode
          easy難度)
          * 了解過(guò)JVM內(nèi)存模型么?說(shuō)說(shuō)哪些是線程獨(dú)享、哪些是線程共享的?
          * 詳細(xì)說(shuō)一下Java堆的分區(qū),他們的比例,以及如果把比例調(diào)大以后會(huì)有什么樣的后果?
          * 說(shuō)一下JVM的GC算法,以及為什么“標(biāo)記-整理”法更好一些,他能解決什么樣的問(wèn)題?
          * 了解過(guò)Java類加載機(jī)制么?一共有哪幾種類加載器?
          * 如果你想查看線上正在運(yùn)行的服務(wù)的GC日志,你需要輸入什么指令?
          * 了解過(guò)HashMap么,說(shuō)一下HashMap的原理。
          * 如果兩個(gè)對(duì)象hashCode相同,則一定是相同對(duì)象么,如果是兩個(gè)相等的對(duì)象,那么他們的hashCode相同么?
          * 如何解決hash沖突?
          * HashMap是線程安全的么,如何把HashMap變成線程安全的類?
          * 說(shuō)一說(shuō)MySQL數(shù)據(jù)庫(kù)有哪些數(shù)據(jù)庫(kù)引擎?
          * InnoDB的索引的數(shù)據(jù)結(jié)構(gòu)是什么,說(shuō)一說(shuō)他的原理
          * 數(shù)據(jù)庫(kù)事務(wù)等級(jí)以及他們解決了什么問(wèn)題,請(qǐng)舉例說(shuō)明一下
          * MySQL默認(rèn)的事務(wù)等級(jí)是什么?
          * MySQL如何開(kāi)啟慢查詢?
          * 說(shuō)一下Spring主要包含哪些模塊?
          * 說(shuō)一下你對(duì)Spring的IOC容器的理解以及啟動(dòng)流程
          * 有了解過(guò)RPC框架或分布式的東西么?(這個(gè)后來(lái)問(wèn)面試官,就是考察對(duì)新技術(shù)的了解以及對(duì)互聯(lián)網(wǎng)發(fā)展的一個(gè)關(guān)注度)
          * 說(shuō)一下你讀過(guò)的有關(guān)Java的書(shū)籍

          H哥:一面一共問(wèn)了26個(gè)問(wèn)題,信息量還是很大的,但是可以看到這些問(wèn)題都不難,主要是考察基礎(chǔ)知識(shí)的掌握情況,這一輪面試的難度數(shù)據(jù)阿里一面的正常難度,持續(xù)的時(shí)長(zhǎng)也算是正常范圍。圍繞的都是Java基礎(chǔ)、MySql數(shù)據(jù)庫(kù)以及Spring框架。

          第二次技術(shù)面(30min)

          * 介紹一下你做的項(xiàng)目中你覺(jué)得最好的那個(gè);說(shuō)一下你這個(gè)項(xiàng)目中的技術(shù)難點(diǎn)和挑戰(zhàn)。
          * 如何解決商城項(xiàng)目中出現(xiàn)的超賣、少賣問(wèn)題?
          * 說(shuō)一下什么是冪等性
          * Redis如何保證高可用的
          * Redis的哨兵模式知道嗎?
          * 你用Redis覺(jué)得有什么缺點(diǎn)嗎?
          * 你是如何做壓力測(cè)試的?壓力測(cè)試的數(shù)據(jù)是什么?
          * 線城池有哪些參數(shù)?
          * 核心線程數(shù)和最大線程數(shù)有什么區(qū)別?
          * 常見(jiàn)的拒絕策略有哪些?
          * 介紹一下SpringBoot的特性
          * 說(shuō)一下什么是單例模式
          * 什么是餓漢模式、懶漢模式
          * 使用懶漢模式的注意事項(xiàng)以及如何解決
          * 說(shuō)一下volatile關(guān)鍵字的作用和原理
          * 說(shuō)一下自旋鎖和一些常見(jiàn)的自旋鎖的實(shí)現(xiàn)
          * 說(shuō)一下數(shù)據(jù)庫(kù)的左外連接
          * 數(shù)據(jù)庫(kù)索引優(yōu)化
          * 數(shù)據(jù)庫(kù)索引的數(shù)據(jù)結(jié)構(gòu)

          H哥:二面在一面的基礎(chǔ)上開(kāi)始包含一些如何做優(yōu)化、底層原理、以及相關(guān)框架的優(yōu)缺點(diǎn)等。希望考察面試者是否有鉆研精神,是否有自己獨(dú)立的思考,而不是那種只會(huì)用技術(shù)而不會(huì)思考的人。

          第三次技術(shù)面(25min)

          * 如何解決商城項(xiàng)目中出現(xiàn)的超賣、少賣問(wèn)題?
          * 在開(kāi)發(fā)項(xiàng)目中,遇到了那些問(wèn)題?
          * Redis與數(shù)據(jù)庫(kù)同步時(shí)候出現(xiàn)問(wèn)題是如何解決的
          * 說(shuō)一下Java當(dāng)中線程有哪些狀態(tài)
          * 線程的阻塞和等待有什么區(qū)別
          * 介紹一些Java的鎖機(jī)制
          * 你了解過(guò)哪些鎖的類型
          * 為什么wait、notify這個(gè)方法會(huì)在Object這個(gè)類下面
          * 分布式、RPC框架有了解過(guò)嗎
          * Redis的線程模型是什么(考察NIO)
          * Redis實(shí)現(xiàn)的消息隊(duì)列是如何保證消息不丟
          * 介紹一下堆排序是如何實(shí)現(xiàn)的
          * 介紹一下TCP/IP協(xié)議是如何保證消息可靠傳輸?shù)?
          * TCP/IP協(xié)議做了什么優(yōu)化(擁塞控制和流量控制)
          H哥:這一輪和上一輪面試的范圍差不多,主要目的也是在做一輪篩選。從這一輪和上一輪整體看,重點(diǎn)都考差了并發(fā)編程和Redis的相關(guān)知識(shí)。

          第四次技術(shù)面(15min)

          * 說(shuō)一下你投稿的文章寫得是什么內(nèi)容
          * 介紹一下消息隊(duì)列
          * 超賣是如何解決的?
          * 下單過(guò)程是如何設(shè)計(jì)的?
          * 介紹一下雪花算法
          * 你怎么理解分布式?
          * 分布式之間怎么通信?
          * 生產(chǎn)者、消費(fèi)者模型是怎么工作的?
          * Java里面創(chuàng)建線程的方式
          * 代碼場(chǎng)景:給一個(gè)字符串,統(tǒng)計(jì)每個(gè)大寫字母出現(xiàn)的次數(shù),按著次數(shù)排序,從小到大輸出字母和其出現(xiàn)的次數(shù)

          H哥:這一輪開(kāi)始問(wèn)到了一些和分布式有關(guān)的知識(shí),這部分知識(shí)點(diǎn)對(duì)于本科生來(lái)說(shuō)確實(shí)會(huì)有些難度,因?yàn)榇蟛糠秩硕紱](méi)有接觸過(guò),所以要求也不會(huì)太高,一般會(huì)關(guān)注一些理論知識(shí)或者概念的理解

          交叉面試(30min)

          * 你在學(xué)校學(xué)習(xí)過(guò)程中,哪些可能成績(jī)更好一些以及為什么這些課程成績(jī)更好一些
          * 你學(xué)習(xí)Java多長(zhǎng)時(shí)間了
          * 你是如何學(xué)習(xí)Java的?
          * 你看過(guò)哪些開(kāi)源框架源碼?
          * 你是怎么看開(kāi)源框架源碼的?
          * 介紹一個(gè)你參與較多或者比較有難度的項(xiàng)目
          * 你們團(tuán)隊(duì)開(kāi)發(fā)項(xiàng)目的時(shí)候有沒(méi)有大家一起解決的某些技術(shù)問(wèn)題
          * 你們做的這個(gè)項(xiàng)目有沒(méi)有借鑒過(guò)其他已經(jīng)成熟的項(xiàng)目
          * 說(shuō)一下你們項(xiàng)目的要求和指標(biāo)大概是多少
          * 你們項(xiàng)目中的線程池隊(duì)列容量是如何確定的
          * 項(xiàng)目中的某些解決方案是個(gè)人想出來(lái)的還是團(tuán)隊(duì)討論的結(jié)果
          * 如果再讓你做一個(gè)商城系統(tǒng),你會(huì)做哪些技術(shù)選型
          * 項(xiàng)目中做過(guò)哪些安全方面的措施
          * 你會(huì)如何設(shè)計(jì)一個(gè)淘寶會(huì)員系統(tǒng)?
          * 你未來(lái)的發(fā)展方向是什么?

          H哥:這一輪的問(wèn)題就都比較開(kāi)放了,因?yàn)槟艿竭_(dá)這一輪的說(shuō)明技術(shù)都是還可以的,這一輪一般會(huì)給出一些問(wèn)題,詢問(wèn)解決方案等,更好的考察面試者的全方面知識(shí)的理解以及如何靈活運(yùn)用。

          面試總結(jié)

          每一次面試都感覺(jué)是煎熬,雖然之前看過(guò)很多阿里的面經(jīng),都說(shuō)阿里面試官會(huì)抓住某一點(diǎn)一直問(wèn)下去,直到問(wèn)到你不會(huì)為止,但是當(dāng)?shù)谝淮斡H身體會(huì)的時(shí)候,還是感覺(jué)很煎熬。

          不過(guò)最終的結(jié)果還是好的,至少收到了心儀的offer,能在這個(gè)疫情期間,大環(huán)境不好的情況下找到實(shí)習(xí)工作。

          對(duì)于整個(gè)的學(xué)習(xí)過(guò)程和面試過(guò)程,最大的感悟有四:

          * 基礎(chǔ)知識(shí)要扎實(shí),尤其是Java和數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí),如果基礎(chǔ)知識(shí)不扎實(shí),后面什么框架和實(shí)戰(zhàn)不會(huì)有太好的結(jié)果
          *
          多看一些技術(shù)類的博客或者文章,但是要有自己的思考,因?yàn)楹芏嗉夹g(shù)類文章都是跟緊互聯(lián)網(wǎng)發(fā)展的,多看一些能夠更加了解互聯(lián)網(wǎng)的發(fā)展方向;同時(shí)自己的思考也能讓自己過(guò)濾掉某些文章中的較差的觀點(diǎn),做到取其精華去其糟粕
          * 主動(dòng)很重要,給我內(nèi)推的學(xué)長(zhǎng)是我主動(dòng)認(rèn)識(shí)的,我的導(dǎo)師是我主動(dòng)認(rèn)識(shí)的,學(xué)技術(shù)也是我主動(dòng)學(xué)習(xí)的,這世上沒(méi)有天上掉餡餅的好事,主動(dòng)才會(huì)有故事
          *
          一個(gè)合適的導(dǎo)師真的很重要,我在遇到我的導(dǎo)師之前,學(xué)習(xí)方向很迷茫,對(duì)于很多東西都不知道如何入手,很多文章也沒(méi)有解決我的問(wèn)題;老師這時(shí)候就可以指明方向,讓我的學(xué)習(xí)之路少了很多崎嶇
          H哥:這4點(diǎn),總結(jié)的很到位,如果很多人能夠像本文作者一樣,在大學(xué)期間就能按照這4點(diǎn)要求去努力的話,相信都可以拿到很好的Offer

          以上就是我暑期實(shí)習(xí)的應(yīng)聘全過(guò)程,當(dāng)然了,作為技術(shù)人員就要保持終生學(xué)習(xí)的態(tài)度,不斷提高自己的核心競(jìng)爭(zhēng)力,才能不被時(shí)代所淘汰。


          以上,就是作者的一些總結(jié),其實(shí),從他開(kāi)始準(zhǔn)備校招到最后拿到阿里的Offer,我們一直都有些交流,可以看得出來(lái),他拿到滿意的Offer除了和自己實(shí)力有關(guān)之外,自己的努力也起到了很大的作用。

          從剛開(kāi)始的準(zhǔn)備簡(jiǎn)歷、到準(zhǔn)備筆試面試、到后來(lái)拿到Offer,一直到最近他寫的這篇面經(jīng),都看得出來(lái)他有認(rèn)真努力對(duì)待找工作這件事情。

          很多人說(shuō),現(xiàn)在阿里要求越來(lái)越高了,是不是非985/211就完全沒(méi)有機(jī)會(huì)了,但是,其實(shí)通過(guò)本文作者的經(jīng)歷就能知道,機(jī)會(huì)是自己努力創(chuàng)造的。

          最后,送給本文的作者——小胖兒、我自己以及所有讀者一句話:

          愿你一生努力,一生被愛(ài)。想要的都擁有,得不到的都釋懷。

          友情鏈接
          ioDraw流程圖
          API參考文檔
          OK工具箱
          云服務(wù)器優(yōu)惠
          阿里云優(yōu)惠券
          騰訊云優(yōu)惠券
          京東云優(yōu)惠券
          站點(diǎn)信息
          問(wèn)題反饋
          郵箱:[email protected]
          QQ群:637538335
          關(guān)注微信

                成人三级视频 | 男女操逼视频网站 | 久久伊人婷婷 | 国产一级婬乱片AV片AAA毛片 | A片精品|