目錄
技術(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)有做不到的,只有想不到的滔金。
喜歡這篇文章的話色解,請(qǐng)使用你發(fā)財(cái)?shù)男∈譃槲尹c(diǎn)個(gè)關(guān)注吧,每天都會(huì)分享Java相關(guān)技術(shù)知識(shí)餐茵,還有互聯(lián)網(wǎng)資訊科阎,也會(huì)定時(shí)給大家送福利,書(shū)籍忿族,學(xué)習(xí)筆記萧恕,源碼等。