1. 程式人生 > >阿里巴巴面試題及注意點

阿里巴巴面試題及注意點

第一輪:電話初面
第二輪:技術面談【技術職位儘量避免談管理上的工作】
第三輪:高管複試
第四輪:HR最後確認


一面:面試官一般會針對您所做過的專案來做具體技術的交流,會比較關注個人對專案細節是不是掌握到位,主要考察java的技術基礎和原理,比如Spring框架以及資料庫和JVM三個方面,也會交流到分散式、執行緒池的實現等等,重點考察是不是有比較鑽研技術和技術上的亮點【不一定每個面都很厲害但一定要有亮點】;
二面:技術面,根據專案深入的瞭解技術實力,瞭解您的知識面,瞭解您的問題解決能力以及技術靈活運用能力,也通過這一過程考察團隊合作能力、學習主動性和創新性,可以挑選2-3個做過的有典型性的專案做一個仔細  技術回顧和自己獨到的理解【這會成為您的加分項】;
三面:他們最後的高管複試會涉及到相關的技術問題,大部分是對你的整體價值觀做巨集觀的把控(比如上進心,責任心,心態,工作激情等)
HR確認:基本就是從大方向瞭解一下您的心態、抗壓能力,工作中的角色、未來大致的規劃以及對阿里的意向度


【技術基礎以及的問題多看看書準備下就行了,不懂的直接說不懂沒關係的;在專案細節上多把關一下,根據專案有針對性的談自己的技術亮點,能表達清楚,可以引導面試官來問你比較擅長的技術問題,個人就可以盡情發揮】


阿里比較喜歡的人才特點:對技術有熱情,強硬的技術基礎實力;主動,善於團隊協作,善於總結思考;


阿里面試問的問題會比較底層  

1.Java記憶體結構,spring的aop的實現方法,java資料庫問題定位和效能調優;


2.關於Java異常的續承層次結構,講述異常的續承關係;
3.java中過載和重寫有什麼區別,分別用什麼關鍵字;
4.關於分散式訊息佇列,分散式快取;
5.關於hashmap原始碼實現, jdk
6.關於設計模式,uml,jvm 記憶體回收機制問題
7.java執行緒如何啟動?java中加鎖的方式有哪些,怎麼個寫法? 

8.對樂觀鎖和悲觀鎖的理解;

9.ORACLE中的SQL如何進行優化,都有哪些方式?事務有哪些特性,在ORACLE中隔離有哪些級別?

10.介紹一下自己最近做的一個典型的專案; 
11.在專案中遇到了哪些問題,自己是如何解決的 ;
12.目前系統支撐的使用者量是多少,假如使用者量提升10倍,系統會出現什麼樣的問題,如何重新設計系統【這裡主要是想了解您的問題預見能力以及問題解決能力,考查思路】
13.使用memcached是一個什麼樣的原理 
14.如何存放資料到memcached叢集中,介紹一下這個過程。跟進的問題,講一下一致性雜湊演算法的實現原理。 
15.JVM中堆是如何管理的,JVM的記憶體回收機制,介紹一下
16.copyOnWriteArray 讀寫哪個好 ?copyOnWriteArray 是讀快還是寫快?
17.session
18.java鎖
19.gc原理
20.listlink arraylist 區別
21.多執行緒
22.kafka 原理和容錯
23.spark hadoop 原理
24.redis 同步機制 
25.假如伺服器反應很慢,你應該怎麼排查問題
26.還有怎麼跟蹤一個方法的用時,並且最小限度干涉業務程式
27.mysql和mongo在查詢使用上有什麼不同?底層實現上有什麼區別?是怎麼實現查詢的,記憶體怎麼分配的?
PS:一定要讓人選準備一下基礎理論的東西 或者組網上看一些Java面試常用點 
菜鳥旁聽面試-java:

人選介紹目前目前技術管理側重;
對阿里推薦對應崗位的理解度;
系統設計是怎麼樣的;
做的一些架構,資料來源來自於哪裡並深入問;
模組邊界,快取機制;
選用技術選型時,A和B的區別;
多執行緒如何用,有什麼好處,和程序的區別;
多執行緒的過程;
多執行緒同步的方法,X專案中如何去實現;
分散式架構在你目前專案中的體現;
跨主機通訊用過什麼,介面等;
大資料儲存;
結尾:你自己覺得你擅長什麼,以後想走的路線,技術還是管理;


資訊平臺技術面試涉及基礎點
1、atom型別是怎麼實現的
2、concurrency的copyOnWriteArray怎麼實現的
3、object.wait的原理
4、tomcat的classloader怎麼隔離類
5、吞吐量優先和響應時間優先的場景,垃圾收集分別應該使用什麼
jvm調優命令
Java類載入器原理以及OSGI類載入器原理
資料庫死鎖的產生和解決辦法 
Java如何處理堆記憶體溢位和棧溢位
6.資料如何收集和處理的思考(資訊平臺-服務運營JAVA-終面)
java的記憶體情況
list map的區別
arrayList  linkedList的區別
hibenate mybatis瞭解情況
hibenate優化
hibenate mybatis 問題的跟蹤和處理
jdk的併發工具類的使用
memached  redis的區別及他們的key的演算法
本地快取的瞭解及使用


1、JVM,引申到每個分割槽在程式上如何控制
2、關於hashmap原始碼實現-->實現map的介面,引申至各自使用的資料結構,相關演算法
3、XSS跨站指令碼攻擊,沒給機會引申
4、多執行緒阻塞佇列、舉一個BolockingQueue原理、引申至資料結構與演算法
5、執行緒同步與互斥、鎖機制,引申至排它鎖、樂觀鎖如何實現等
6、如何保證事務安全和執行緒安全


B2C技術面試涉及基礎點

1、equal和hashcode的區別
2、hashmap的實現
3、hashmap,hashtable,concurrenthashmap的區別
4、string,stringbuilder,stringbuffer的區別
5、過載和覆蓋的區別
6、java類載入機制
7、cookie和session的區別
8、http 常見返回碼,如404,301,302,500的含義
9、負載均衡中的F5和LVS的區別
10、ajax跨域訪問解決方案
11、mysql和mongodb的區別
12、redis相比memcached的優勢,redis叢集實現原理
13、在使用cdn的情況下,描述從瀏覽器發起http請求的過程
14、資料庫分表分庫的原理
15、threadlocal的應用
16、網站前端優化相關,如js,圖片載入的優化
17、大資料如spark的使用
執行緒安全:
B tree解釋下:
資料庫索引用的什麼結構
Redis跟memacache區別:
資料庫建立索引的依據
HashMap裡面可以用自定義的物件做key麼?Why?
設計模式用過哪些,畫一下結構:
TCP UDP區別




天貓技術面試涉及基礎點

1. 說一下java中一個物件從宣告到銷燬的過程
2. java記憶體模型
3. 年輕代gc採用的是什麼演算法
4. ConcurrentHashMap的原理 
自己實現一個 線性安全的 list ,你會怎麼做
Java多執行緒下,鎖你會怎麼優化 
資料庫優化
nginx和apache的區別
nginx支撐這麼多併發的原因
怎麼讓A執行緒先於B執行緒結束?




商家平臺-技術專家-千牛旺旺面試涉及基礎點
多執行緒,lock,jvm gc,設計模式,資料庫索引,線上問題定位,併發介面設計 並行呼叫介面設計  Cas實現原理, 在併發包下的使用 ,Dsl
限流,如果限制某些地區,或者保大商家,並考慮擴充套件性怎麼設計這個系統
你提供的服務呼叫A,B等其他服務,怎樣保證你的服務不被其他服務拖垮?
怎樣控制併發量,保證服務高可用
原來一個jvm的服務進行服務化拆分後存在什麼問題?
怎麼做服務隔離,熔斷,監控等