我是如何拿下阿里、頭條、滴滴的,最終還是選擇去了阿里巴巴。(上)-創(chuàng)新互聯(lián)

本人兩年開發(fā)經(jīng)驗(yàn)、18年年底開始跑路找工作,在互聯(lián)網(wǎng)寒冬下成功拿到阿里巴巴、今日頭條、滴滴等公司offer,崗位是Java后端開發(fā),最終選擇去了阿里巴巴。

成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、成都網(wǎng)站制作、無(wú)棣網(wǎng)絡(luò)推廣、小程序制作、無(wú)棣網(wǎng)絡(luò)營(yíng)銷、無(wú)棣企業(yè)策劃、無(wú)棣品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供無(wú)棣建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:muchs.cn

面試了很多家公司,感覺(jué)大部分公司考察的點(diǎn)都差不多,所以將自己的心得記下來(lái),希望能給正在找或者準(zhǔn)備找工作的朋友提供一點(diǎn)幫助。另外,目前在阿里也做面試官的工作,身份從求職者變?yōu)槊嬖嚬?,看?wèn)題的很多角度也不一樣,所以下文中既有求職者的視角,也有面試官的視角。

面試流程

先說(shuō)下面試流程,一般大公司都有3-4輪技術(shù)面,1輪的HR面。就阿里而言,我共經(jīng)歷了4輪技術(shù)面,前兩輪主要是問(wèn)基礎(chǔ)和項(xiàng)目實(shí)現(xiàn),第3輪是交叉面,兩個(gè)面試官,主要是問(wèn)項(xiàng)目實(shí)現(xiàn)和拓展。第4輪是部門老大面,主要就問(wèn)一些架構(gòu)、技術(shù)和業(yè)務(wù)的理解、個(gè)人發(fā)展比較抽象的東西了。

HR面主要就是跟你聊聊天,看看你的個(gè)人穩(wěn)定性、價(jià)值觀、主動(dòng)性之類的,一般HR是不會(huì)掛人的,但很多人在HR面后掛了,原因其實(shí)不是你在HR面的表現(xiàn)不好(少數(shù)情況除外),而是你之前幾面的表現(xiàn)一般,比60分要高一點(diǎn)(所以沒(méi)在前面的面試直接掛了你),但是又沒(méi)達(dá)到80分,這個(gè)時(shí)候公司基于hc、人才配比、與其他候選人的對(duì)比等多個(gè)維度考慮,最終決定是否給你offer。

另外要特別說(shuō)下的是,今日頭條對(duì)算法的考察會(huì)比較多,我面了4輪技術(shù),每一輪都會(huì)問(wèn)1到2個(gè)算法題,大概是leetcode上easy和medium難度。所以想去頭條的同學(xué)最好先去leetcode上刷刷題。

要注意的點(diǎn)

  • 簡(jiǎn)歷一到兩頁(yè)為最佳,將項(xiàng)目經(jīng)歷寫2-3個(gè)左右就差不多了,一定要寫最有亮點(diǎn)的項(xiàng)目

  • 工作經(jīng)歷的起始時(shí)間要寫清楚,另外大公司都有背調(diào),不要合并或省略一些比較短的工作經(jīng)歷,影響的可能不只是這次面試,而是之后可能都無(wú)法進(jìn)這家公司

  • 博客沒(méi)什么好文章,github沒(méi)好項(xiàng)目就不要寫在簡(jiǎn)歷中了

  • 對(duì)于面試官的問(wèn)題,想清楚再回答,如果覺(jué)得需要的時(shí)間可能比較長(zhǎng),可以跟面試官說(shuō)我思考下、我整理下思路之類的

  • 遇到不會(huì)的問(wèn)題直接說(shuō)不會(huì),不要不懂裝懂

  • 遇到比較確定的問(wèn)題,要有自信一點(diǎn),有時(shí)候面試官可能會(huì)故意用懷疑的語(yǔ)氣來(lái)考察你

  • 面試的過(guò)程中注意語(yǔ)速和吐字,本人在做面試官后,發(fā)現(xiàn)很多人說(shuō)話語(yǔ)速很快,或吐字不清,導(dǎo)致原本會(huì)的問(wèn)題也會(huì)讓面試官覺(jué)得你沒(méi)答到點(diǎn)上(尤其是電話面)

  • 面試過(guò)程中可以自信但不要與面試官爭(zhēng)執(zhí)

  • 面試完后不要直接問(wèn)面試結(jié)果

  • 面試保持自信而不自大,曾經(jīng)問(wèn)一位候選人說(shuō)對(duì)hashmap是了如指掌,結(jié)果問(wèn)到hashmap擴(kuò)容時(shí)需不需要重新計(jì)算hash就懵逼了。對(duì)于很多人來(lái)說(shuō),面試官總有辦法把你問(wèn)倒的。

  • 每次面試后都總結(jié)有哪些答的不好的地方,有哪些知識(shí)點(diǎn)的盲區(qū),解決掉。

  • 被問(wèn)到為什么想跳槽的時(shí)候,因該從自身發(fā)展等角度出發(fā),而不是吐槽前公司。

另外,在求職的過(guò)程中也碰到過(guò)少數(shù)沒(méi)有素質(zhì)的面試官,比如一上來(lái)就一副很不屑的語(yǔ)氣,話沒(méi)說(shuō)兩句開始diss你的項(xiàng)目,給人的體驗(yàn)很不好。所以也請(qǐng)各位面試官或?qū)?lái)要做面試官的同學(xué),能在面試的過(guò)程中保持基本的禮貌和尊重,就像在阿里常說(shuō)的:你面試別人的時(shí)候,別人也在面試著你。

最重要的一點(diǎn),不要因?yàn)閹状蔚拿嬖囀【烷_始懷疑自己,永遠(yuǎn)記住,面試的結(jié)果=實(shí)力+運(yùn)氣。有時(shí)候你擅長(zhǎng)的東西可能面試官根本不會(huì),所以他也不可能花很多時(shí)間去問(wèn)他不懂的東西;有時(shí)候可能他問(wèn)你的你都會(huì),但是可能因?yàn)閷?duì)方提問(wèn)方式、語(yǔ)氣等原因,答的就是不順暢。

接下來(lái)說(shuō)技術(shù)相關(guān)的考察。

總的來(lái)說(shuō),技術(shù)相關(guān)的考察主要分為兩大塊,一是基礎(chǔ),二是經(jīng)驗(yàn)。

基礎(chǔ)包括java基礎(chǔ)、數(shù)據(jù)庫(kù)、中間件等,來(lái)自于日常的積累和面試前的準(zhǔn)備。

經(jīng)驗(yàn)包括以往做過(guò)的項(xiàng)目、解決的問(wèn)題、以及一些場(chǎng)景題(比如你的項(xiàng)目如果流量大了十倍如何保證可用)。

本文主要說(shuō)基礎(chǔ),下篇文章將說(shuō)經(jīng)驗(yàn)。

基礎(chǔ)

以下都是我認(rèn)為面試中經(jīng)常會(huì)被考察到的知識(shí)點(diǎn)的整理,不夠完整,但大部分都是常見(jiàn)面試題。

java基礎(chǔ)

集合

集合分為兩大塊:java.util包下的非線程安全集合和java.util.concurrent下的線程安全集合。

List

ArrayList與LinkedList的實(shí)現(xiàn)和區(qū)別

Map

HashMap:了解其數(shù)據(jù)結(jié)構(gòu)、hash沖突如何解決(鏈表和紅黑樹)、擴(kuò)容時(shí)機(jī)、擴(kuò)容時(shí)避免rehash的優(yōu)化

LinkedHashMap:了解基本原理、哪兩種有序、如何用它實(shí)現(xiàn)LRU

TreeMap:了解數(shù)據(jù)結(jié)構(gòu)、了解其key對(duì)象為什么必須要實(shí)現(xiàn)Compare接口、如何用它實(shí)現(xiàn)一致性哈希

Set

Set基本上都是由對(duì)應(yīng)的map實(shí)現(xiàn),簡(jiǎn)單看看就好

常見(jiàn)問(wèn)題

  • hashmap如何解決hash沖突,為什么hashmap中的鏈表需要轉(zhuǎn)成紅黑樹?

  • hashmap什么時(shí)候會(huì)觸發(fā)擴(kuò)容?

  • jdk1.8之前并發(fā)操作hashmap時(shí)為什么會(huì)有死循環(huán)的問(wèn)題?

  • hashmap擴(kuò)容時(shí)每個(gè)entry需要再計(jì)算一次hash嗎?

  • hashmap的數(shù)組長(zhǎng)度為什么要保證是2的冪?

  • 如何用LinkedHashMap實(shí)現(xiàn)LRU?

  • 如何用TreeMap實(shí)現(xiàn)一致性hash?

線程安全的集合

Collections.synchronized

了解其實(shí)現(xiàn)原理

CopyOnWriteArrayList

了解寫時(shí)復(fù)制機(jī)制、了解其適用場(chǎng)景、思考為什么沒(méi)有ConcurrentArrayList

ConcurrentHashMap

了解實(shí)現(xiàn)原理、擴(kuò)容時(shí)做的優(yōu)化、與HashTable對(duì)比。

BlockingQueue

了解LinkedBlockingQueue、ArrayBlockingQueue、DelayQueue、SynchronousQueue

常見(jiàn)問(wèn)題

  • ConcurrentHashMap是如何在保證并發(fā)安全的同時(shí)提高性能?

  • ConcurrentHashMap是如何讓多線程同時(shí)參與擴(kuò)容?

  • LinkedBlockingQueue、DelayQueue是如何實(shí)現(xiàn)的?

  • CopyOnWriteArrayList是如何保證線程安全的?

并發(fā)

synchronized

了解偏向鎖、輕量級(jí)鎖、重量級(jí)鎖的概念以及升級(jí)機(jī)制、以及和ReentrantLock的區(qū)別

CAS

了解AtomicInteger實(shí)現(xiàn)原理、CAS適用場(chǎng)景、如何實(shí)現(xiàn)樂(lè)觀鎖

AQS

了解AQS內(nèi)部實(shí)現(xiàn)、及依靠AQS的同步類比如ReentrantLock、Semaphore、CountDownLatch、CyclicBarrier等的實(shí)現(xiàn)

ThreadLocal

了解ThreadLocal使用場(chǎng)景和內(nèi)部實(shí)現(xiàn)

ThreadPoolExecutor

了解線程池的工作原理以及幾個(gè)重要參數(shù)的設(shè)置

常見(jiàn)問(wèn)題

  • synchronized與ReentrantLock的區(qū)別?

  • 樂(lè)觀鎖和悲觀鎖的區(qū)別?

  • 如何實(shí)現(xiàn)一個(gè)樂(lè)觀鎖?

  • AQS是如何喚醒下一個(gè)線程的?

  • ReentrantLock如何實(shí)現(xiàn)公平和非公平鎖是如何實(shí)現(xiàn)?

  • CountDownLatch和CyclicBarrier的區(qū)別?各自適用于什么場(chǎng)景?

  • 適用ThreadLocal時(shí)要注意什么?比如說(shuō)內(nèi)存泄漏?

  • 說(shuō)一說(shuō)往線程池里提交一個(gè)任務(wù)會(huì)發(fā)生什么?

  • 線程池的幾個(gè)參數(shù)如何設(shè)置?

  • 線程池的非核心線程什么時(shí)候會(huì)被釋放?

  • 如何排查死鎖?

推薦文章:

死磕Synchronized底層實(shí)現(xiàn)--概論(比較深入)

引用

了解Java中的軟引用、弱引用、虛引用的適用場(chǎng)景以及釋放機(jī)制

常見(jiàn)問(wèn)題

  • 軟引用什么時(shí)候會(huì)被釋放

  • 弱引用什么時(shí)候會(huì)被釋放

推薦文章:

Java引用類型原理剖析(比較深入)

類加載

了解雙親委派機(jī)制

常見(jiàn)問(wèn)題

  • 雙親委派機(jī)制的作用?

  • Tomcat的classloader結(jié)構(gòu)

  • 如何自己實(shí)現(xiàn)一個(gè)classloader打破雙親委派

IO

了解BIO和NIO的區(qū)別、了解多路復(fù)用機(jī)制

常見(jiàn)問(wèn)題

  • 同步阻塞、同步非阻塞、異步的區(qū)別?

  • select、poll、eopll的區(qū)別?

  • java NIO與BIO的區(qū)別?

  • reactor線程模型是什么?

JVM

GC

垃圾回收基本原理、幾種常見(jiàn)的垃圾回收器的特性、重點(diǎn)了解CMS(或G1)以及一些重要的參數(shù)

內(nèi)存區(qū)域

能說(shuō)清jvm的內(nèi)存劃分

常見(jiàn)問(wèn)題

  • CMS GC回收分為哪幾個(gè)階段?分別做了什么事情?

  • CMS有哪些重要參數(shù)?

  • Concurrent Model Failure和ParNew promotion failed什么情況下會(huì)發(fā)生?

  • CMS的優(yōu)缺點(diǎn)?

  • 有做過(guò)哪些GC調(diào)優(yōu)?

  • 為什么要?jiǎng)澐殖赡贻p代和老年代?

  • 年輕代為什么被劃分成eden、survivor區(qū)域?

  • 年輕代為什么采用的是復(fù)制算法?

  • 老年代為什么采用的是標(biāo)記清除、標(biāo)記整理算法

  • 什么情況下使用堆外內(nèi)存?要注意些什么?

  • 堆外內(nèi)存如何被回收?

  • jvm內(nèi)存區(qū)域劃分是怎樣的?

中間件、存儲(chǔ)、以及其他框架

Spring

bean的生命周期、循環(huán)依賴問(wèn)題、spring cloud(如項(xiàng)目中有用過(guò))、AOP的實(shí)現(xiàn)、spring事務(wù)傳播

常見(jiàn)問(wèn)題

  • java動(dòng)態(tài)代理和cglib動(dòng)態(tài)代理的區(qū)別(經(jīng)常結(jié)合spring一起問(wèn)所以就放這里了)

  • spring中bean的生命周期是怎樣的?

  • 屬性注入和構(gòu)造器注入哪種會(huì)有循環(huán)依賴的問(wèn)題?

Dubbo(或其他Rpc框架)

了解一個(gè)常用RPC框架如Dubbo的實(shí)現(xiàn):服務(wù)發(fā)現(xiàn)、路由、異步調(diào)用、限流降級(jí)、失敗重試

常見(jiàn)問(wèn)題

  • Dubbo如何做負(fù)載均衡?

  • Dubbo如何做限流降級(jí)?

  • Dubbo如何優(yōu)雅的下線服務(wù)?

  • Dubbo如何實(shí)現(xiàn)異步調(diào)用的?

RocketMq(或其他消息中間件)

了解一個(gè)常用消息中間件如RocketMq的實(shí)現(xiàn):如何保證高可用和高吞吐、消息順序、重復(fù)消費(fèi)、事務(wù)消息、延遲消息、死信隊(duì)列

常見(jiàn)問(wèn)題

  • RocketMq如何保證高可用的?

  • RocketMq如何保證高吞吐的?

  • RocketMq的消息是有序的嗎?

  • RocketMq的消息局部順序是如何保證的?

  • RocketMq事務(wù)消息的實(shí)現(xiàn)機(jī)制?

  • RocketMq會(huì)有重復(fù)消費(fèi)的問(wèn)題嗎?如何解決?

  • RocketMq支持什么級(jí)別的延遲消息?如何實(shí)現(xiàn)的?

  • RocketMq是推模型還是拉模型?

  • Consumer的負(fù)載均衡是怎么樣的?

Redis(或其他緩存系統(tǒng))

redis工作模型、redis持久化、redis過(guò)期淘汰機(jī)制、redis分布式集群的常見(jiàn)形式、分布式鎖、緩存擊穿、緩存雪崩、緩存一致性問(wèn)題

推薦書籍:《Redis設(shè)計(jì)與實(shí)現(xiàn)》

常見(jiàn)問(wèn)題

  • redis性能為什么高?

  • 單線程的redis如何利用多核cpu機(jī)器?

  • redis的緩存淘汰策略?

  • redis如何持久化數(shù)據(jù)?

  • redis有哪幾種數(shù)據(jù)結(jié)構(gòu)?

  • redis集群有哪幾種形式?

  • 有海量key和value都比較小的數(shù)據(jù),在redis中如何存儲(chǔ)才更省內(nèi)存?

  • 如何保證redis和DB中的數(shù)據(jù)一致性?

  • 如何解決緩存穿透和緩存雪崩?

  • 如何用redis實(shí)現(xiàn)分布式鎖?

Mysql

事務(wù)隔離級(jí)別、鎖、索引的數(shù)據(jù)結(jié)構(gòu)、聚簇索引和非聚簇索引、最左匹配原則、查詢優(yōu)化(explain等命令)

常見(jiàn)問(wèn)題

  • Mysql(innondb 下同) 有哪幾種事務(wù)隔離級(jí)別?

  • 不同事務(wù)隔離級(jí)別分別會(huì)加哪些鎖?

  • mysql的行鎖、表鎖、間隙鎖、意向鎖分別是做什么的?

  • 說(shuō)說(shuō)什么是最左匹配?

  • 如何優(yōu)化慢查詢?

  • mysql索引為什么用的是b+ tree而不是b tree、紅黑樹

  • 分庫(kù)分表如何選擇分表鍵

  • 分庫(kù)分表的情況下,查詢時(shí)一般是如何做排序的?

zk

zk大致原理(可以了解下原理相近的Raft算法)、zk實(shí)現(xiàn)分布式鎖、zk做集群master選舉

常見(jiàn)問(wèn)題

  • 如何用zk實(shí)現(xiàn)分布式鎖,與redis分布式鎖有和優(yōu)缺點(diǎn)

HBase(如簡(jiǎn)歷有寫)

HBase適用的場(chǎng)景、架構(gòu)、merge和split、查寫數(shù)據(jù)的流程。

Storm(如簡(jiǎn)歷有寫)

Storm與Map Reduce、Spark、Flink的比較。Storm高可用、消息ack機(jī)制

算法

算法的話不是所有公司都會(huì)問(wèn),但最好還是準(zhǔn)備下,主要是靠刷題,在leetcode上刷個(gè)100-200道easy和medium的題,然后對(duì)應(yīng)公司的面經(jīng)多看看,問(wèn)題應(yīng)該不大。

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。

文章題目:我是如何拿下阿里、頭條、滴滴的,最終還是選擇去了阿里巴巴。(上)-創(chuàng)新互聯(lián)
瀏覽路徑:http://muchs.cn/article28/degpjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、微信小程序定制網(wǎng)站、網(wǎng)站營(yíng)銷、網(wǎng)站內(nèi)鏈App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)