為記錄阿里的電面經(jīng)歷,特與大家分享堂污,崗位是JAVA研發(fā)工程師家肯。
一面主要問題如下:
1)首先自我介紹
2)數(shù)據(jù)結構算法的基本問題,如排序算法盟猖,二叉樹遍歷讨衣,后序遍歷非遞歸,圖的最短路徑問題
3)對一個數(shù)組進行絕對值排序的算法
4)java中hashmap的底層實現(xiàn)
5)java中垃圾回收機制GC原理等
6)介紹自己的項目式镐,數(shù)據(jù)庫中用到的數(shù)據(jù)結構數(shù)據(jù)模型反镇,死鎖的概念(問的應該是數(shù)據(jù)庫的死鎖),如何避免死鎖?
7)樂觀鎖和悲觀鎖?
8)一致性hash算法
9)項目中業(yè)務對象的關聯(lián)關系/關聯(lián)方式碟案,談談左外連接及如何實現(xiàn)多對多關系模型
10)spring的IOC和AOP
11)sping如何實現(xiàn)(保證)事務一致性完整性愿险,spring中事務傳播機制類型
12)談談WEB的架構(應該指的是j2ee開發(fā)架構模型)、項目中的用戶場景使用場景
13)對分布式架構的了解价说,如分布式存儲 分布式緩存 分布式計算
14)談談對阿里的哪些開源項目有所了解辆亏?
15)對淘寶技術是否有了解?
16)對其杭州信息平臺事業(yè)部其主要業(yè)務是否了解(其主要是java方面的開發(fā)鳖目,另可以重點關注看看工作流引擎)
二面主要問題如下:
1)首先仍然是先自我介紹
2)有過競賽經(jīng)歷扮叨?獎項?專業(yè)排名领迈?平時都看些什么書籍彻磁?是否參加了學校社團活動?哪個部門狸捅?主要工作衷蜓?時間安排?
3)對哪些技術最熟悉最擅長尘喝?我說的是java WEB框架那些磁浇,然后就開始問java了
4)接口和抽象類的區(qū)別 實現(xiàn)有哪些不同?
5)序列化如何實現(xiàn)朽褪?用代碼描述置吓。writeObject? objectWrite?ObjectOutputStream.writeObject(). ObjectInputStream.readObject()
6)IO框架 集合框架的描述。如何判斷文件是否存在缔赠?如何讀取一個目錄下面的所有文件和子目錄衍锚?代碼描述。
7)廣度優(yōu)先遍歷目錄下面的所有子目錄和文件嗤堰?代碼實現(xiàn)戴质?List和Map的不同?HashMap的實現(xiàn)?如何解決散列沖突置森?
8)多線程機制斗埂?線程休眠10秒?sleep()與wait()的區(qū)別凫海。
9)緩沖流buffer的用途呛凶?原理?
10)linux下如何查看CPU負載和IO端口的使用情況行贪?如何創(chuàng)建目錄漾稀?如何搜索一個指定的字符?
11)考察數(shù)據(jù)庫的sql操作建瘫,給定了一個具體的業(yè)務表崭捍,如何對不同類型的數(shù)據(jù)進行統(tǒng)計。
12)事務的概念啰脚?臟讀殷蛇?如何避免?如何在代碼中實現(xiàn)橄浓?
13)sql代碼中如何使用如何定義一個事務粒梦?應該是如何定義一個事務的隔離級別?
14)項目中遇到的問題荸实?解決方式匀们?
15)SSI框架?spring如何定義一個bean?代碼描述准给。Bean的生命周期泄朴?Bean的scope?
16) 對淘寶技術架構的了解露氮?從哪里獲取到的祖灰?自己今后的職業(yè)規(guī)劃?技術發(fā)展方向畔规?
17)最后夫植,對來杭州和阿里工作的意向?然后詢問我自己有啥想問的油讯?談了下 信息平臺事業(yè)部的主要業(yè)務?工作流和ERP延欠?
總體上來看陌兑,還是比較注重基礎的 尤其是java的多線程和并發(fā)安全性及數(shù)據(jù)庫相關,另外對有關開源框架的具體底層實現(xiàn)需要多閱讀源碼并進行總結由捎。
下面是網(wǎng)上參考到的阿里java面試題目,同樣作為借鑒兔综。
-################################################################################
1 hashmap,hashtable區(qū)別。
2 是否了解過hashmap的源碼?
3 jvm相關软驰,主要是內存分配的過程涧窒,何時出發(fā)GC,用什么工具或者命令來進行監(jiān)控锭亏?
4 類加載纠吴,類隔離機制。
5 spring的ioc慧瘤,aop戴已,事物,然后順便提到了數(shù)據(jù)庫的事物锅减,兩階段提交糖儡,數(shù)據(jù)庫鎖的級別,MySQL數(shù)據(jù)庫鎖的特殊之處(頁級鎖)
6 java線程池里面的arrayblockingqueue怔匣,linkedblockingqueue的用途和區(qū)別握联。
7 設計模式相關,主要講解用途
8 如何保證數(shù)據(jù)庫集群中ID的唯一性每瞒,假設每秒鐘并發(fā)20萬次金闽。
9 設計十萬并發(fā)級別的網(wǎng)站后臺,如何計算使用的ecs數(shù)目(云服務器(Elastic Compute Service, ECS 如阿里ECS)是一種處理能力可彈性伸縮的計算服務器,
基于BGP最優(yōu)路由算法構架多線網(wǎng)絡,云服務器可以幫助構建更加安全穩(wěn)定的應用)独泞。
10 memcached和redis的異同和用途呐矾。
11 nosql數(shù)據(jù)庫相關,主要講了mongodb
12 10G的整數(shù)中懦砂,取出最大的一個(不光是使用高效的排序算法蜒犯,還需要考慮內存大小)
13 synchronized荞膘,volatile罚随,可重入鎖的用途和優(yōu)缺點。
14 java nio相關核心的api基本了解和應用
15 一致性hash
16 在一個大系統(tǒng)中存在哪些單點失效的問題
17 hadoop優(yōu)化相關
#########################################################################
一面羽资,主要注重基礎淘菩,問得很深很廣,壓力面試屠升。
1.hashmap潮改、concurrenthashmap底層實現(xiàn)和區(qū)別
2.spring框架的原理
3.如何寫一個orm框架
4.hibernate一級緩存和二級緩存,hibernate其他緩存
5.hibernate事務傳播行為種類
6.springmvc原理
7.restful的好處
8.restful有幾種請求腹暖,表單如何提交put請求
9.web中安全性問題的考慮汇在,如何防止
10.web系統(tǒng)整體架構
11.hibernate如何實現(xiàn)聲明式事務
12.java并發(fā)包
13.volatile
14.平常都看哪些書
15.spring底層數(shù)據(jù)結構
16.如何進行反射,如何提高反射的性能
17.如何實現(xiàn)java的代理脏答,為什么需要實現(xiàn)接口
18.TCP協(xié)議三次握手
19.springmvc用過哪些注解
20.springAOP可以使用哪些代理糕殉,有什么區(qū)別
21.為什么要分三層
22.mybatis與hibernate有什么區(qū)別亩鬼,為什么不用hibernate直接寫sql語句?
這面沒有準備好阿蝶,廣度和深度壓力很大雳锋,建議大家多看看三大框架源碼、原理羡洁,并發(fā)包玷过。
二面注重于項目
1.什么是restful web service?
2.并發(fā)集合包焚廊?
3.項目中使用了哪些數(shù)據(jù)結構冶匹?
4.TCP中斷連接四次揮手?
5.MD5加鹽
6.https
7.支付寶接口開發(fā)
8.知道哪些鎖咆瘟,有什么區(qū)別嚼隘?
9.依舊JDK源碼
10.項目遇到什么問題,怎么解決袒餐?
11.JDK1.8有什么新特性飞蛹?
也許是覺得一面已經(jīng)問了很多了,這面又答得比較不錯灸眼,20分鐘就結束了卧檐,30分鐘出了結果。
三面聊人生
leader人very nice焰宣,給了一些建議霉囚,可能是覺得技術差不多,這面基本沒怎么問技術匕积,主要是職業(yè)發(fā)展盈罐、IBM的實習內容之類,我想大家可能也都有自己的想法闪唆,18分鐘盅粪。
hr面聊成長經(jīng)歷:聊了一下對B2B的認識和自己的技術成長歷程。
###################################################################################
關注我:私信回復“資料”獲取往期Java高級架構資料悄蕾、源碼票顾、筆記、視頻
Dubbo帆调、Redis奠骄、設計模式、Netty番刊、zookeeper含鳞、Spring cloud、分布式撵枢、
高并發(fā)等架構技術
1.Java基礎
ArrayList,HashMap等集合框架類民晒,重要基礎類String等的處理。HashMap的底層存儲結構等锄禽。
(也可以順帶考察下對接口潜必,繼承,重載重寫的基本理解沃但;以及異常處理的注意事項)磁滚。
2. 數(shù)據(jù)結構與算法
常見的查找算法及時間復雜度。
常見的排序算法及時間復雜度宵晚。
比較重要的數(shù)據(jù)結構垂攘,如鏈表,隊列淤刃,棧的基本理解及大致實現(xiàn)晒他。
3. 多線程問題
1)線程安全問題。 HashMap 是否線程安全逸贾,為何不安全陨仅。 ConcurrentHashMap,線程安全铝侵,為何安全灼伤。底層實現(xiàn)是怎么樣的。
2)J.U.C下的常見類的使用咪鲜。 ThreadPool的深入考察狐赡; BlockingQueue的使用。(take疟丙,poll的區(qū)別颖侄,put,offer的區(qū)別)隆敢;原子類的實現(xiàn)发皿。
3)各種常見鎖使用
如果上面這些掌握很好,還可以看看更深一點的 False Sharing拂蝎,Cache Line穴墅,可見性與原子性等;
4. JVM
Java內存分代模型温自,GC算法玄货,JVM常見的啟動參數(shù); CMS算法的過程悼泌。
這塊回答較好松捉,也可以只是看畢玄的Java分布式開發(fā)或網(wǎng)上文章的學習, 可以結合JVM啟動參數(shù)常見配置馆里,jstat等命令隘世,看下動手能力可柿,意愿;以及實際線上問題排查丙者。
5.Linux使用與問題分析排查
1). grep复斥,awk,sed械媒; 是否自己寫過shell腳本目锭;
2). 常見的cpu load過高,us過高纷捞,一般是什么問題痢虹。引申出是否用過top,jstat主儡,jstack等奖唯。
常見的內存問題一般有哪些。 引申出是否用過free缀辩,top臭埋, jmap等。
6. 框架使用
spring aop的底層實驗原理臀玄。 aop與cglib瓢阴,與asm的關系。
spriong ioc的生命周期健无,(init-method荣恐,intilizingbean接口方法afterPropertiesSet的先后順序)等。
Hibernate對一二級緩存的使用累贤,Lazy-Load的理解叠穆;
7. 數(shù)據(jù)庫相關:
1. mysql存儲引擎中索引的實現(xiàn)機制;
2.數(shù)據(jù)庫事務的幾種粒度臼膏;
3.行鎖硼被,表鎖;樂觀鎖渗磅,悲觀鎖
8.網(wǎng)絡協(xié)議:
HTTP協(xié)議嚷硫;
HTTPS協(xié)議,SSL協(xié)議及完整交互過程始鱼;
9. redis
redis仔掸,memcache底層客戶端使用一致性Hash,看是否了解医清;
redis的事件驅動多路復用底層實現(xiàn)起暮;引申到NIO編程, 看對Netty会烙,或mina是否了解负懦。
如果候選者同時用過memcache筒捺,redis,看下是否了解兩者在使用場景上的區(qū)別纸厉。以考察使用深度焙矛,以及是否有好奇精神。
10. 設計模式與重構
常見設計模式残腌,如singlen,factory贫导,abstract factory抛猫,strategy,chain孩灯,adaptor闺金,decorator,composite峰档,template败匹,absever等。
重構:重構書籍
11. 學習與進取心
最近上過上哪些技術站點讥巡; 最近在看哪些書。
12. 抗壓能力及抗壓意愿
了解加班情況,了解是否愿意在一段時間996等虏冻;
13 穩(wěn)定性考察
了解家庭婚姻狀況墓怀, 了解購房及居住地,籍貫情況抬驴,了解目前薪資炼七,評估穩(wěn)定性;
=======
1.進程和線程的區(qū)別
2.什么叫線程安全布持?舉例說明
3.OSI七層模型豌拙,包括TCP,IP的一些基本知識
4.數(shù)據(jù)庫的鎖
5.DFS,BFS算法
6.還有一些諸如collection framework的Java基礎
7、http中题暖,get post的區(qū)別
其他的面試按傅,感覺問的很有代表性:
第一面(只記得這么多了)
1、筆試題第四題實現(xiàn)又口述了下
2芙委、有個每秒鐘5k個請求逞敷,查詢手機號所屬地的筆試題(記得不完整,沒列出)灌侣,如何設計算法?請求再多推捐,比如5w,如何設計整個系統(tǒng)?
3侧啼、比較熟悉什么技術?我說jvm和oracle牛柒,就讓我畫jvm的體系結構堪簿,畫了之后說各個部分的職責,并扯到運行期優(yōu)化皮壁。
第二面(沒有技術細節(jié)椭更,都是泛泛的,但是我回答的比較保守蛾魄,只覺得能滔滔不絕的說上半小時才敢說看過或了解)
1虑瀑、是否愿意去杭州
2、熟悉各種技術框架么?源碼讀過么?
3滴须、數(shù)據(jù)庫了解什么?mysql了解么
4舌狗、前臺技術,看我用的ExtJS扔水,就問是否了解JQuery
5痛侍、進現(xiàn)在的公司,覺得對技術是否有提升?
第三面魔市,此面沒有技術問題
第四面HR(感覺這面問題回答的有點扯主届,畢竟是這么幾年來首次面HR,之前面過2待德、3個公司君丁,要么很早就掛了,要么感覺流程太長将宪,自己不愿意面下去)
1谈截、愿意去杭州發(fā)展么?我說要考慮,hr就問主要考慮什么問題
2涧偷、從技術角度來說簸喂,你覺得你跟你同學比怎么樣
3、你的父母怎么看待你的
1燎潮、jvm性能調優(yōu)都做了什么
2喻鳄、高并發(fā)情況下,我們系統(tǒng)是如何支撐大量的請求的
3确封、集群如何同步會話狀態(tài)
4除呵、負載均衡的原理
5、數(shù)據(jù)庫事務屬性
6爪喘、二叉樹的遍歷算法
7颜曾、hashtable和hashmap的區(qū)別
8、并發(fā)秉剑、同步的接口或方法
9泛豪、string、stringbuilder、stringbuffer區(qū)別
10诡曙、https處理的一個過程臀叙,對稱加密和非對稱加密
11、線程的幾種狀態(tài)
12价卤、了解手機開發(fā)么
13劝萤、個人優(yōu)勢
14、與同事溝通的時候慎璧,如果遇到?jīng)_突了如何解決
15床嫌、工作中覺得哪方面欠缺?
16、有問題要問么?
17胸私、期望薪水
18既鞠、為什么要離開現(xiàn)在的公司
* struts1.2和webwork的區(qū)別
* hibernate和ibatis的區(qū)別
* spring工作機制,IOC容器
* servlet的一些相關問題
* webservice相關
* java基礎:jvm盖文,HashSet等等
* 考察學習新技術的能力
其他:
1. 店鋪相關的業(yè)務特點決定,有前后端知識是加分項蚯姆。 如果候選者熟悉javascript五续。
可以考察:
1) 前后端優(yōu)化的基本常識,比如js放在后面不阻塞等龄恋;原生js的理解疙驾,正則,時間冒泡等郭毕。
2)firebug它碎,fiddle等調試工具;
3)如果是基本使用显押,看下ext框架扳肛,jquery等熟悉程度。jquery插件機制乘碑,sizzle選擇器挖息。
如果以上都不錯,可以再深入考察
1)作用域鏈兽肤, 閉包的理解套腹。
2)看下是否了解最新的技術。 augularJS资铡, nodejs电禀,cmd規(guī)范,amd規(guī)范等笤休。
阿里HR面相關問題分享如下:
1尖飞、為什么選擇該部門?因為在校招個人信息的開放問題中,有一個問題是:你最期望在阿里巴巴實習的部門或項目是什么葫松?請介紹下你對該部門的了解和希望實習的原因瓦糕?而我只是寫了個部門名稱,并未展開說明腋么,所以hr才有此一問咕娄。
2、之前有參加過其他公司的招聘嗎珊擂?為什么沒有通過圣勒?
3、阿里實習招聘被拒的原因摧扇?什么問題沒有回答好圣贸?對該問題下來自己有無總結?
4扛稽、對阿里的印象或者同學中的評價吁峻?
5、參與的課外活動在张?社團用含?除了學習,有其他的活動嗎帮匾?
6啄骇、為什么選擇讀研?讀研和本科的不同瘟斜?讀研后最大的不同是缸夹?
7、問有沒有實習經(jīng)歷或者工作經(jīng)驗 怎么看待螺句?可否提前去實習虽惭?
8、最近有沒有自己感覺沮喪的事情蛇尚?談一談趟妥。最近遇到最困難的事情是?
9佣蓉、為什么選擇去杭州工作披摄?
10、本周結束內推流程勇凭,8月15號前出結果通知疚膊。最后,是否有啥想問的虾标?
整體上感覺hr態(tài)度還是很不錯的寓盗,相互交流的還挺輕松。
主要用到的技術棧總結:
關注我:私信回復“資料”獲取往期Java高級架構資料傀蚌、源碼基显、筆記、視頻
Dubbo善炫、Redis撩幽、設計模式、Netty箩艺、zookeeper窜醉、Spring cloud、分布式艺谆、
高并發(fā)等架構技術
架構師筑基專題:
開源框架解析專題:
高性能架構專題:
微服務架構專題:
團隊協(xié)作開發(fā)專題:
B2C項目實戰(zhàn):
并發(fā)編程專題:
# **讀者福利**
讀到這的朋友還可以免費領取一份唔我收集的Java核心知識體系文檔及更多Jav進階知識筆記和視頻資料榨惰。
###資料領取方式:? **[點擊Java高級架構群](http://qm.qq.com/cgi-bin/qm/qr?k=Bd4NyjGC-utCVPSktv_KlAJ5m7dG5ncs)**
![](https://upload-images.jianshu.io/upload_images/16449956-55386092e8b73460?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
**更多筆記分享**
![](https://upload-images.jianshu.io/upload_images/16449956-eafd5e0cf00e9c11?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](https://upload-images.jianshu.io/upload_images/16449956-020b352d2053f923?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)