目錄
- 技術(shù)一面(23問(wèn))
- 技術(shù)二面(3大塊)
- JAVA開(kāi)發(fā)技術(shù)面試中可能問(wèn)到的問(wèn)題(17問(wèn))
- JAVA方向技術(shù)考察點(diǎn)(33快)
- 項(xiàng)目實(shí)戰(zhàn)(7大塊)
- 必會(huì)知識(shí)(48點(diǎn))
- 面試小技巧
- 注意事項(xiàng)
1. 阿里技術(shù)一面
Java IO流的層次結(jié)構(gòu)?
請(qǐng)說(shuō)出常用的異常類型?
SKU的全稱是什么抵恋,SKU與SPU的區(qū)別及關(guān)系焕议?
FileInputStream在使用完以后,不關(guān)閉流弧关,想二次使用可以怎么操作号坡?
設(shè)計(jì)一個(gè)分步式登錄系統(tǒng)?
Spring加載過(guò)程梯醒?
自己有沒(méi)有寫(xiě)過(guò)類似Spring這樣的AOP事務(wù)宽堆?
Java中 try..catch關(guān)閉流的語(yǔ)法糖?
如何設(shè)計(jì)一個(gè)秒殺系統(tǒng)?要考慮什么茸习?
有沒(méi)有遇到進(jìn)線上GC畜隶,出現(xiàn)的癥狀是什么樣的,怎么解決的号胚?
spring的加載過(guò)程籽慢?
atomic與 volatile的區(qū)別?
Thread的 notify給notifyAll的區(qū)別?
notifiy是喚醒的那一個(gè)線程?
Thread.sleep喚醒以后是否需要重新競(jìng)爭(zhēng)猫胁?
單例有多少種寫(xiě)法?有什么區(qū)別?你常用哪一種單例箱亿,為什么用這種?
問(wèn)一個(gè)Thread.join相關(guān)的問(wèn)題?
商品相關(guān)模塊系統(tǒng)怎么設(shè)計(jì)數(shù)據(jù)模型弃秆?
寫(xiě)一個(gè)JAVA死鎖的列子?
如何解決死鎖?
GC回收算法,及實(shí)現(xiàn)原理?
HashMap數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)? key重復(fù)了怎么辦?是如何解決的?
Spring AOP的實(shí)現(xiàn)原理届惋,底層用什么實(shí)現(xiàn)的?
2. 阿里技術(shù)二面
電話面試主要考察3塊內(nèi)容:
Java的相關(guān)基礎(chǔ)知識(shí)菠赚,開(kāi)源框架的原理脑豹,JVM,多線程衡查,高并發(fā)瘩欺,中間件等;
之前項(xiàng)目經(jīng)歷,運(yùn)用的技術(shù)俱饿,遇到的問(wèn)題歌粥,如何解決,個(gè)人有什么收獲和成長(zhǎng)拍埠;
對(duì)于技術(shù)的熱情(平時(shí)是否看些技術(shù)書(shū)籍阁吝,逛論壇,寫(xiě)博客械拍,寫(xiě)源代碼或程序等)突勇;
3.JAVA開(kāi)發(fā)技術(shù)面試可能問(wèn)到的問(wèn)題
我們主要考核的是網(wǎng)絡(luò)nio分布式數(shù)據(jù)庫(kù)高并發(fā)大數(shù)據(jù)
自定義表格的實(shí)現(xiàn)?
動(dòng)態(tài)表單設(shè)計(jì)?
in-jvm(必考)以及jmm緩存模型如何調(diào)優(yōu)?
常用的RPC框架
nio和io
并發(fā)編程车酣,設(shè)計(jì)模式
地圖組件?
hashmap有什么漏洞會(huì)導(dǎo)致他變慢伊脓?
如何給hashmap的key對(duì)象設(shè)計(jì)他的hashcode潭兽?
泛型通配符?在什么情況下使用动遭?
后端方面:redis?分布式框架dubbo(阿里巴巴開(kāi)源框架)?設(shè)計(jì)模式?
場(chǎng)景式的問(wèn)題:秒殺,能列出常見(jiàn)的排隊(duì)员魏、驗(yàn)證碼坑质、庫(kù)存扣減方式對(duì)系統(tǒng)高并發(fā)的影響?
能根據(jù)實(shí)際的需要構(gòu)建緩存結(jié)構(gòu)提高提高網(wǎng)站的訪問(wèn)速度痒留,熟練使用ehcache购披、oscache芹敌,了解memcache痊远。
了解基于dns輪詢的負(fù)載均衡,熟練配置web服務(wù)器實(shí)現(xiàn)負(fù)載均衡氏捞,程序級(jí)能綜合使用基于hash或取模等手段實(shí)現(xiàn)軟負(fù)載碧聪。
熟悉分布式數(shù)據(jù)庫(kù)設(shè)計(jì)和優(yōu)化技術(shù),熟練使用mysql液茎、oracle逞姿、SqlServer等主流數(shù)據(jù)庫(kù),熟悉hadoop hbase mangodb redis ehcache捆等、oscache memcache滞造。對(duì)于大數(shù)據(jù)量的數(shù)據(jù)庫(kù)處理采用分表分庫(kù)、數(shù)據(jù)庫(kù)讀寫(xiě)分離栋烤、建立緩存等手段優(yōu)化性能谒养。
熟練掌握l(shuí)ucene,能基于lucene開(kāi)發(fā)大型的搜索引擎明郭,并能用lucene來(lái)改善和優(yōu)化數(shù)據(jù)庫(kù)的like查詢买窟。
4. JAVA方向技術(shù)考察點(diǎn)(補(bǔ)充):
掌握J(rèn)ava編程語(yǔ)言,包含io/nio/socket/multi threads/collection/concurrency等功能的使用达址;
熟練掌握jvm(sun hotspot和ibm j9)內(nèi)存模型蔑祟、gc垃圾回收調(diào)優(yōu)等技能;
精通JVM,JMM,MVC架構(gòu)沉唠,熟練使用struts2。
熟練使用spring苛败、struts满葛、ibatis構(gòu)建應(yīng)用系統(tǒng)径簿。
熟練使用Servlet嘀韧,jsp篇亭,freemark等前端技術(shù)。
熟練使用axis搭建基于SOAP協(xié)議的WebService服務(wù)接口锄贷。
熟練使用MAVEN構(gòu)建項(xiàng)目工程译蒂。
熟練使用tomcat等web服務(wù)。
熟練使用mysql等關(guān)系型數(shù)據(jù)庫(kù)谊却,熟悉mysql集群搭建柔昼。
熟練使用redis等NOSQL技術(shù)。
熟悉tcp炎辨、http協(xié)議捕透。
熟悉nginx、haproxy等配置碴萧。
熟悉javascript乙嘀、ajax等技術(shù)。
熟悉主流分布式文件系統(tǒng)FastDFS等破喻。
熟悉JMS虎谢,可熟練使用ActiveMQ。
底層計(jì)算機(jī)理解內(nèi)存管理/數(shù)據(jù)挖掘系統(tǒng)
可靠性和可用性如何理解~
jsp和sever lap對(duì)比
數(shù)據(jù)庫(kù)到界面曹质,字符集轉(zhuǎn)化
基棧
jvm優(yōu)化cup高的時(shí)候如果分析和監(jiān)控
java curb突出細(xì)節(jié)問(wèn)題
分布式緩存文檔如何分流
遷移數(shù)據(jù)庫(kù)垂直分割
高并發(fā)如何處理前端高并發(fā)應(yīng)用層
LB設(shè)計(jì)load balance
負(fù)載均衡
防網(wǎng)絡(luò)攻擊
數(shù)據(jù)日志事件監(jiān)控后通知
數(shù)據(jù)庫(kù)事務(wù)實(shí)現(xiàn)的底層機(jī)制
字符串空格輸入的網(wǎng)絡(luò)攻擊
Quartz框架的底層原理
數(shù)據(jù)庫(kù)同步中不通過(guò)數(shù)據(jù)庫(kù)引擎直接讀日志等方式同步數(shù)據(jù)
5. 項(xiàng)目部分
緩存的使用嘉冒,如果現(xiàn)在需要實(shí)現(xiàn)一個(gè)簡(jiǎn)單的緩存,供搜索框中的ajax異步請(qǐng)求調(diào)用咆繁,使用什么結(jié)構(gòu)讳推?
內(nèi)存中的緩存不能一直存在,用什么算法定期將搜索權(quán)重較低的entry去掉玩般?
TCP如何保證安全性
紅黑樹(shù)的問(wèn)題银觅,B+數(shù)
JDK1.8中對(duì)HashMap的增強(qiáng),如果一個(gè)桶上的節(jié)點(diǎn)數(shù)量過(guò)多坏为,鏈表+數(shù)組的結(jié)構(gòu)就會(huì)轉(zhuǎn)換為紅黑樹(shù)究驴。
項(xiàng)目中使用的單機(jī)服務(wù)器,如果將它部署成分布式服務(wù)器匀伏?
MySQL的常見(jiàn)優(yōu)化方式洒忧、定為慢查詢
手寫(xiě)一個(gè)線程安全的單例模式
6. 進(jìn)阿里必會(huì)知識(shí):
算法和數(shù)據(jù)結(jié)構(gòu)數(shù)組、鏈表够颠、二叉樹(shù)熙侍、隊(duì)列、棧的各種操作(性能,場(chǎng)景)
二分查找和各種變種的二分查找
各類排序算法以及復(fù)雜度分析(快排蛉抓、歸并庆尘、堆)
各類算法題(手寫(xiě))
理解并可以分析時(shí)間和空間復(fù)雜度。
動(dòng)態(tài)規(guī)劃(筆試回回有巷送。驶忌。)、貪心笑跛。
紅黑樹(shù)付魔、AVL樹(shù)、Hash樹(shù)飞蹂、Tire樹(shù)几苍、B樹(shù)、B+樹(shù)晤柄。
圖算法(比較少擦剑,也就兩個(gè)最短路徑算法理解吧)
計(jì)算機(jī)網(wǎng)絡(luò)OSI7層模型(TCP4層)每層的協(xié)議
url到頁(yè)面的過(guò)程
HTTPhttp/https 1.0、1.1芥颈、2.0
get/post以及冪等性
http協(xié)議頭相關(guān)
網(wǎng)絡(luò)攻擊(CSRF惠勒、XSS)
TCP/IP三次握手、四次揮手
擁塞控制(過(guò)程爬坑、閾值)
流量控制與滑動(dòng)窗口
TCP與UDP比較
子網(wǎng)劃分(一般只有筆試有)
DDos攻擊
(B)IO/NIO/AIO三者原理纠屋,各個(gè)語(yǔ)言是怎么實(shí)現(xiàn)的
Netty
Linux內(nèi)核select poll epoll
數(shù)據(jù)庫(kù)(最多的還是mysql,Nosql有redis)索引(包括分類及優(yōu)化方式盾计,失效條件售担,底層結(jié)構(gòu))
sql語(yǔ)法(join,union署辉,子查詢族铆,having,group by)
引擎對(duì)比(InnoDB哭尝,MyISAM)
數(shù)據(jù)庫(kù)的鎖(行鎖哥攘,表鎖,頁(yè)級(jí)鎖材鹦,意向鎖逝淹,讀鎖,寫(xiě)鎖桶唐,悲觀鎖栅葡,樂(lè)觀鎖,以及加鎖的select sql方式)
隔離級(jí)別尤泽,依次解決的問(wèn)題(臟讀欣簇、不可重復(fù)讀规脸、幻讀)
事務(wù)的ACID
B樹(shù)、B+樹(shù)
優(yōu)化(explain醉蚁,慢查詢燃辖,show profile)
數(shù)據(jù)庫(kù)的范式鬼店。
分庫(kù)分表网棍,主從復(fù)制,讀寫(xiě)分離妇智。
Nosql相關(guān)(redis和memcached區(qū)別之類的滥玷,如果你熟悉redis,redis還有一堆要問(wèn)的)
操作系統(tǒng):進(jìn)程通信IPC(幾種方式)巍棱,與線程區(qū)別
OS的幾種策略(頁(yè)面置換惑畴,進(jìn)程調(diào)度等,每個(gè)里面有幾種算法)
互斥與死鎖相關(guān)的
linux常用命令(問(wèn)的時(shí)候都會(huì)給具體某一個(gè)場(chǎng)景)
Linux內(nèi)核相關(guān)(select航徙、poll如贷、epoll)
編程語(yǔ)言(這里只說(shuō)Java):把我之后的面經(jīng)過(guò)一遍,Java感覺(jué)覆蓋的就差不多了到踏,不過(guò)下面還是分個(gè)類杠袱。
Java基礎(chǔ)(面向?qū)ο蟆⑺膫€(gè)特性窝稿、重載重寫(xiě)楣富、static和final等等很多東西)
集合(HashMap、ConcurrentHashMap伴榔、各種List纹蝴,最好結(jié)合源碼看)
并發(fā)和多線程(線程池、SYNC和Lock鎖機(jī)制踪少、線程通信塘安、volatile、ThreadLocal援奢、CyclicBarrier兼犯、Atom包、CountDownLatch萝究、AQS免都、CAS原理等等)
JVM(內(nèi)存模型、GC垃圾回收帆竹,包括分代绕娘,GC算法,收集器栽连、類加載和雙親委派险领、JVM調(diào)優(yōu)侨舆,內(nèi)存泄漏和內(nèi)存溢出)
IO/NIO相關(guān)
反射和代理、異常绢陌、Java8相關(guān)挨下、序列化
設(shè)計(jì)模式(常用的,jdk中有的)
Web相關(guān)(servlet脐湾、cookie/session臭笆、Spring)
7.面試技巧
1、答非所問(wèn):
感覺(jué)到答案說(shuō)出來(lái)對(duì)方會(huì)不待見(jiàn)的時(shí)候秤掌,可以這么做:有關(guān)聯(lián)性的答非所問(wèn)愁铺,注意強(qiáng)調(diào)自己的想法,爭(zhēng)取讓面試官能夠共情闻鉴,比如深圳的房?jī)r(jià)可以引人共情茵乱、電商相關(guān)的大平臺(tái)、穩(wěn)定孟岛、有上升空間等瓶竭。
2、面試的狀態(tài)很重要:
兩個(gè)例子渠羞,上月一個(gè)成功offer的候選人斤贰,非互聯(lián)網(wǎng)背景,公司也不是一線的堵未,但是面試時(shí)表現(xiàn)出對(duì)阿里很強(qiáng)烈的興趣腋舌,HR事后特地向我們提到,對(duì)這位候選人印象很深刻渗蟹;
另一位今天剛掛的候選人块饺,兩輪技術(shù)都是一舉拿下,最后HR面掛了雌芽,HR給我們的反饋是授艰,候選人剛從自己的創(chuàng)業(yè)公司離職,貌似情緒很低落世落,對(duì)自己也沒(méi)什么想法淮腾。
綜上所述,面試時(shí)既不要唯唯諾諾屉佳,過(guò)于被動(dòng)谷朝,也不要過(guò)于夸張,而是在于展現(xiàn)自己對(duì)一個(gè)不錯(cuò)機(jī)會(huì)的尊重和爭(zhēng)取武花,讓面試官覺(jué)得你對(duì)他們圆凰,對(duì)這個(gè)崗位有很大的興趣。
8. 注意事項(xiàng)
1体箕、阿里比絕大部分公司更看重情懷和夢(mèng)想
阿里的八字箴言:樂(lè)觀专钉、聰明挑童、皮實(shí)、自省
2跃须、阿里里面的HR都是懂業(yè)務(wù)的站叼,會(huì)結(jié)合對(duì)候選人的判斷和業(yè)務(wù)的把控進(jìn)行篩選,不要忽悠他們.......
相信自己菇民,沒(méi)有做不到的尽楔,只有想不到的。
讀者福利
針對(duì)于上面的文章我總結(jié)出了互聯(lián)網(wǎng)公司java程序員面試涉及到的絕大部分面試題及答案做成了文檔和架構(gòu)視頻資料免費(fèi)分享給大家(包括Dubbo玉雾、Redis翔试、Netty轻要、zookeeper复旬、Spring cloud、分布式冲泥、高并發(fā)等架構(gòu)技術(shù)資料)驹碍,希望能幫助到您面試前的復(fù)習(xí)且找到一個(gè)好的工作,也節(jié)省大家在網(wǎng)上搜索資料的時(shí)間來(lái)學(xué)習(xí)凡恍。
資料獲取方式:加qun群:956011797點(diǎn)擊立即加入 找管理小姐姐免費(fèi)獲戎就骸!
合理利用自己每一分每一秒的時(shí)間來(lái)學(xué)習(xí)提升自己嚼酝,不要再用"沒(méi)有時(shí)間“來(lái)掩飾自己思想上的懶惰浮还!趁年輕,使勁拼闽巩,給未來(lái)的自己一個(gè)交代钧舌!
部分資料截圖
·