阿里 面試那些二三事


阿里面試的那些二三事

技術面試

自我介紹

個人經歷背景、經歷過什么大起大落 做過什么有挑戰的事情 每家公司自己的成長和挑戰是?

項目:

項目怎么講清楚? 面向的用戶和客戶是誰?體量有多少? 業務流程是什么樣的? 有哪些模塊? 用到了什么樣的技術? 每種技術是如何選型的?為什么是這樣的一個技術架構?架構有沒有哪里不好的?

業務痛點和客戶價值&衡量指標

衡量做的好壞的數字指標是?

角色:

項目負責人,1人負責整體工程端工作,架構設計 項目管理?

架構:

模塊+模型+表結構+挑戰+結果;
依賴了什么?對外輸出了什么? 沉淀了什么?
都有哪些模塊?相互之間的關聯關系是什么? 各模塊的解決的問題是? 為什么要這么設計? 為什么要這些表? 為什么要分庫分表?

技術亮點&擅長的技術

挑戰&難點&怎么解決的?

達成目標 業務和產品策略是什么?運營節奏是?

在技術選型上有沒有其他的對比?為什么選擇這個方案?

做這個項目,你最大的收獲是什么?你覺得哪些地方可以改進?再來一次會怎么做

學到了什么?

團隊定位

  • 整體的產品&技術架構是什么? 你們團隊在里面的定位是?背的核心kpi是?
  • 團隊組織架構? 分多少團隊 各自負責什么? 你們團隊負責什么?你負責什么?你這一趴的定位是什么?
  • 跟業務整體目標有什么關聯? 你對目標體系做的增量價值是? 有什么創新方案?推動了誰?過程中經歷過哪些困難? 怎么克服?

業務理解-目標驅動和行業對比意識

  • 業務競對分析:他們是怎么做的? 體量 ? 優劣勢?

  • 使命&願景&用戶價值?

  • 團隊背的核心KPI是?衡量的核心指標是?

  • 有沒有跟業務或者主管不一致的想法? 后面如何處理?如何證明自己? 后期的效果如何?

  • 你對客戶是否有拜訪 跟客戶有什么聯動 自己有沒有主動推動過一些事情並落地帶來好結果?
  • 有沒有收到了什么負面反饋? 什么原因?如何改善? 成長是什么?
  • 除了開發需求 有沒有自己自己主動推動過業務產品發展的事情?

主動性&擔當&工作成果&貢獻-業務推動能力及其結果

  • 主動發起並構建了統一的....平台,並解決了協同實習性等諸多問題問題,引入了規則引擎等技術框架,有非常好的發現問題、解決問題能力,對細節把控也比較好;
  • 主動發起了...項目,在模型設計、數據存儲、信息加密方面做了比較多的工作, 對業務與技術的理解不錯。


技術-深度和視野

基礎

  • 基礎數據結構的實現:linkedList arrayList hashmap treemap
  • hashmap 實現? 紅黑樹特性和原理? 復雜度?
  • HashMap在JDK8中如何解決死循環問題?
  • HashMap和HashSet關系
  • concurrentHashMap實現

  • 常見的並發模塊和類? -
  • volatile的作用和原理
  • ThreadPoolExecutor用法與關鍵參數關系?核心參數理解
  • 進程間如何通訊,線程間如何通訊? 線程通訊:信號量、信號、鎖
  • Threadlocal是怎樣實現的? 注意些什么?
  • sleep()和wait()的區別,
  • 進程間通信方式有哪些?各有什么優缺點,挑一兩種說下使用場景

  • synchronize和重入鎖的區別:
  • aqs 邏輯, 加鎖和釋放鎖
  • 重入鎖下有幾條隊列?
  • cas理解、產生的問題、怎么解決?哪些類通過版本?

  • jvm內存結構?
  • 棧溢出情況、新生代內存結構及其比例划分&為什么這么設計?
  • 垃圾回收器類型和算法?G1 CMS使用場景?-
  • jvm常見參數? 常見分析指令? jps jmap jstack zprofile等?- 沒怎么做個調優 Integer

  • 類加載機制 雙親委派 為什么這么設計? 如何打破? Tomcat osgi jdbc如何做的? 其他語言 怎么做的額? node里的npm? -
  • 自定義類加載器如何實現?注解的原理?如何實現自定義注解?
  • maven jar包 沖突解決方案? spring cloud 怎么做的? 版本代號-
  • 如何排查類沖突?如何隔離沖突?如何自定義類加載器

  • spring aop的理解?用了哪些設計模型?動態代理理解? 有哪些實現方式?jdk cglib asm ?選型對比?
  • BeanFactory和ApplicationContext的差異?
  • spring 容器啟動順序和流程,擴展點BeanFactoryPostProcessor的加載流程?
    • springcontext 管理bean 加載插件 , 沒看過
  • spring事務傳播機制 ?異常處理?

  • Spring IOC的初始化和生命周期?
  • spring的ioc啟動流程簡述:refresh方法、解析xml文件或注釋、BeanDefinition、初始化上下文ApplicationContext
  • 相互依賴 死循環問題 - 三級緩存 提前曝光 還沒初始化先放到緩存里

  • springboot 和spring 的區別?何自定義stater、spring.factories實現自動配置,加載所有需要加載的bean?
  • bean factory和factory bean的區別 - ok

  • BIO/NIO/AIO各自特點及對應場景
  • NIO的在netty中的封裝的模型及底層操作系統epoll的實現; select實現對比?
  • 粘包 拆包

  • DDD的理解? 解決什么問題? 遇到什么問題? 如何建模? 做個 用例分析沒? 怎么確定領域邊界?問題域的划分?
  • 單點登錄,cookie,session理解

設計模式


有哪些設計模式?在哪些源碼中看到過使用場景?如何設計? 如何實現?

線上問題經驗

有沒有遇到線上問題?怎么解決的? 有沒有其他方案?解決效果如何? 有沒有被復用?

  • 什么情況會出現 Full GC,什么情況會出現yong GC
  • 調優經驗? 為什么調整?分析過程是怎樣的?調整了哪些參數?效果如何?(老系統 4g 堆空間 768M 當時 Young區比較頻繁,dump日志 結合 zprofile 做分析,大量for循環創建對象,后面結合代碼優化以及 堆空間升級 )
  • 常見的cpu load過高 一般是什么問題。引申出是否用過top,jstat,jstack等 使用過top,jmap、jstack、jstat沒有使用過。
  • 查看任何進程下線程運行狀態?jps
  • 如何診斷java線程死鎖?jstack;
  • while(true){new thread().start();},內存和cpu飆高;
  • 診斷死鎖?1)看堆棧;2)select;3)java線程狀態,死鎖blocked;4)cpu占用率很高;

數據庫

  • 數據庫引擎及其區別, 主鍵索引實現方式對比 ? 對於為何B+樹比B樹更適合做索引?優劣勢對比?索引類型 ?
  • 隔離級別、幻讀理解和解決方案 間隙鎖 mvvc的理解-

  • 讀寫分離&分庫分表 做過沒?數據量有多大?分多少可庫?基於什么做分庫分表-用戶id OR 時間 為什么?主鍵唯一主鍵id生成方案是?選型對比- shardding tddl mycat? 優劣勢是什么?有沒有什么限制? 各自核心原理是? -
  • 分庫分表的主鍵唯一主鍵id生成方案?
  • 分表之后會遇到哪些問題 ?跨庫分頁如何解決? 如何實現數據的整體排序?

  • 常見sql優化方式? 如何做分析?explain的使用和理解 每一列的含義是? 慢sql經驗?

中間件&分布式:

  • 分布式事務哪些實現方式?二階段&三階段等的區別和理解


  • 跟memcache相比 Redis有哪些優缺點?Redis如何實現擴容?如何解決redis熱點數據問題?

  • redis集群模式&對比 汰換&失效策略

  • redis的持久化方式?aof和rdb的區別?

  • 緩存擊穿 雪崩及其解決方案

  • 其他 緩存 數據庫? 對比? -

  • 一致性hash 解決什么問題 、原理 -


  • 分布式鎖實現方式有哪些? 有沒有什么可優化的空間?如何減少遠程服務調用?

  • 分布式系統如何做冪等設計?


  • netty的reactor線程模型 select? zero copy , TCP粘包/拆包?


  • es和solr & rpc 序列化 & netty mina & mq(kafka rocketmq metaq redis) & orm & 分庫分表 & 緩存數據庫(redis memcached) &

  • 狀態機 & 工作流 等中間件 實現有哪些?對比選型?優缺點是?為什么選擇這種方式 跟其他的對比是? 背后的原理?遇到什么問題 怎么解決?取舍是什么?業務特點是怎么樣的? 有遇到什么什么問題? 怎么解決?各自核心原理是?


  • mq底層實現? 亂序&丟失&延時 如何解決?kafka的數據如何存儲的? 查詢索引如何設計的? 日志索引。

  • rocketMQ的如何保證不丟以及消息是否能夠一定被消費


  • sentinel 本身的開銷、集群限流 、 滑動窗口和令牌桶等實現對比(開銷更大 但精准度更高)


  • dubbo實現?有哪些模塊?各個模塊負責什么?選型和對比? 軟負載是怎么實現的? -

    • RPC的原理是?服務是怎么注冊的
    • rpc監控、運行容器,底層通信等細節;
    • 服務注冊技術選型,負載均衡機制、網絡傳輸重失敗試機制、網絡傳輸框、客戶端代理、服務端服務查找映射調用如何設計計與實現
    • 怎么做全鏈路的追蹤?

  • zookeeper 節點類型? 集群部署節點角色和各自負責什么? 一致性協議理解?

  • zk的讀寫過程和作用

  • zk什么時候要選主及選主的邏輯;


  • 公司自研中間件 相對 開源的 有什么不同?開源上有哪些類似的解決方案? 為什么要自研?能解決什么特殊問題?

源碼

看過那些源碼? 背后的原理? 設計的如何巧妙? 涉及到什么設計模式? 同類框架是如何做的?
著名開源項目的源碼。 dubbo zookeeper redis mybatis spring tomcat netty等 相關源碼如果看過最好

項目管理

為什么做這個項目?價值是?痛點是? 帶領過多大的 項目 ?涉及多少團隊 多少人力 過程中遇到什么阻礙 如何解決?風險應對?成長是?怎么做好項目管理?

團隊管理

團隊管理 上 有什么經驗?如何發揮每個人的潛力? 如何保證成員成長? 如何能做好沉淀?

個人成長&影響力

  • 負責統一調度系統等多個產品,有主導中大型系統經驗

  • 公司考核機制?目前級別? 工資情況?績效情況 是否top? 在OYO2年都是A 優秀員工,在陸金所 第一年是C(后面還有E) 后面幾年都是A? 有沒有參加過晉升?晉升結果?
  • 最近有沒有面試過其他公司?進展如何?給到的薪資層級如何?上家公司薪資多少?期望薪資多少

  • 在團隊內會做個分享沒?分享什么內容?
  • 團隊里有什么特殊貢獻沒?分享?分享什么?內推 內推幾人? 專利?價值是?影響力如何

  • 自己有很棒的開源項目
  • 個人博客 有沒有?
  • 一周的工作任務是什么? 項目架構設計?一天寫代碼的時長有多少
  • 業余時間在干什么(抽時間學一些課程、領域知識/)

  • 成長經歷是怎么樣的? 每一年 半年 自己有哪些成長? 經歷了什么?

  • STAR模型,T和A,你做了什么樣的Task,用了什么Action,取得什么結果,就是TAR。特別關注S,Situation,你在什么條件下做什么事情 (你這個部門多少人,跟你合作的上下游,上下左右都要看,你跟誰合作,匯報給誰,你下一個是誰,哪些活是你獨立干的,獨立干的時候起點是什)

學習習慣

  • 學習方式?學習來源?github 技術群 公眾號(具體哪些)


  • 最近學習那些技術?接觸了哪些新技術? 新技術 jdk9 10 新特性 ;雲原生;servless理解;

  • 每天花多少時間學習?

  • 是否參與 過開源項目?影響如何?


  • 最近看的一些書? 技術上的書籍- 阿里高可用架構、paper、github ? 項目管理? 軟技能? 創新? 產品?


  • 寫技術文檔,公眾號,jdk源碼、高並發、spring;我的IT技術路

  • 分享 舉行多次code review , 怎么閱讀源碼


  • infoq參加過一次;

  • 想法:希望得到多方的反饋以提升技術能力,關注行業內技術大牛

個人規划:

  • 3-5年的規划是什么?--短期想接觸更多有挑戰的項目成為資深工程師,進一步提升知識深度,長期成為架構師。

在線筆試

評估面后的1到2天左右,注意代碼規范 和 答題思路 , 寫點注釋 ,代碼整潔, 主要是 並發基礎+設計模式+基本的數據結構和算法題(、排序算法、二叉樹、紅黑樹、平衡樹 等) [常見筆試題-自己也多在網上找找資料]

給定一個字符串,輸出不含有重復字符的最長子串的長度。

輸出楊輝三角,10行即可

例如:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

兩個線程A,B按序輸出 0-100之間的元素,線程A只負責輸出質數,線程B負責輸出其他元素。

a線程質數 1
a線程質數 2
a線程質數 3
b線程元素 4
a線程質數 5

單例的實現(懶漢 和 餓漢) 工廠模式 策略模式 模板模式等的實現

共計9個蘋果,有2只猴子,一個猴子每次拿2個蘋果,一個猴子每次拿3個蘋果,如果剩余的蘋果不夠猴子每次拿的數量,則2只猴子停止拿蘋果,請用java多線程模擬上面的描述並打印出過程

個人特質&潛力&穩定性面試:

面試崗位的理解?

可以了解了解我們做什么,自己也可以在網上找找相關資料。


面向的用戶是誰?給用戶帶來了什么價值?商業模式是什么?是否看好?為什么?競對是?優劣勢?

本科-大學在哪里讀的?

大學期間:參加SAP公司的舉辦的比賽:項目使用機器學習算法,預估二手車價格。前后端開發。獲得一等獎(一等5個,還有1個特等將)。
大學2次獲得人民獎學金,成績前20%。
當了三年的班長,比較看重學習,倡導學習氛圍,整個班三十幾人,考研考了二十幾個211 985。

獲獎的情況

大學和公司期間 參加過什么比賽?是否獲獎?
雖然是剛畢業三個月自己爭取帶項目,年度協作獎評選獲得這個獎項。

為什么來杭州&離職原因

各個公司離職的原因?怎么積極回答好
家是上饒的,小孩剛出生。全家都過來,老婆目前全職帶娃,支持來杭州。

加入阿里的訴求是?

其他考核點

  • 過往歷史的環境中有哪些東西是自己主動變的,有哪些東西是被動變的。主動變,怎么抓住主動變革的機會以及變革的成功的概率,結果怎么樣?
  • 當你跟你上司意見不一致你怎么處理?
  • 哪些事情是別人都不贊成你做成了的
  • 這個事情你在做的過程中,你最失望最灰心的是什么時候
  • 你自己覺得最驕傲和自豪的事情是什么? 為什么?

其他

面試流程:

簡歷評估面 1面+筆試 2面 3面(包括HR面) 如果想快點面試,可以主動和面試官反饋 可加速流程

面試要心得體會

  • 簡歷上的技術點 : 所有寫上去的都可能被問到 一定要准備好 如果不熟悉 盡量不要寫進去
  • 可以投一些小公司面試面試 鍛煉下自己, 准備好了之后在面試阿里,如果面試掛了會被記錄在檔,半年后才有機會在下一次面試
  • 回答問題前先聽清楚問題 如果沒聽清楚可以跟面試官確認 然后結構化 簡要回答 要有重心 別太扯一些無關的

  • 阿里面試的關鍵不只是技術基礎,還有 個人潛力、思考等,不能只看技術

面試的一些經驗分享

可主動在網上搜索下其他人的面試經驗

最后

如果 有職業困惑、職業挑戰不知如何解決、遇到瓶頸想換個工作的同學 加我個人微信:yaogao000, 備注:招聘_姓名

在這里插入圖片描述

可掃碼加微信,如果有好的朋友 也麻煩幫忙推薦推薦

內推紅包

部門急招(崗位介紹: https://www.nowcoder.com/discuss/552709),求幫忙內推,終面通過可以免費把阿里內推獎金還給大家,阿里p6 6000元,p7 10000元


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM