目錄
技術(shù)一面(23問)
技術(shù)二面(3大塊)
性能優(yōu)化(21點(diǎn))
項(xiàng)目實(shí)戰(zhàn)(34塊)
JAVA方向技術(shù)考察點(diǎn)(15點(diǎn))
JAVA開發(fā)技術(shù)面試中可能問到的問題(17問)
阿里技術(shù)面試1
1.Java IO流的層次結(jié)構(gòu)?
2.請(qǐng)說出常用的異常類型?
3.SKU的全稱是什么届案,SKU與SPU的區(qū)別及關(guān)系碗脊?
4.FileInputStream 在使用完以后窝爪,不關(guān)閉流塘匣,想二次使用可以怎么操作顾画?
5.設(shè)計(jì)一個(gè)分步式登錄系統(tǒng)取劫?
6.Spring加載過程?
7.自己有沒有寫過類似Spring這樣的AOP事務(wù)研侣?
8.Java中 try..catch 關(guān)閉流的語法糖?
9.如何設(shè)計(jì)一個(gè)秒殺系統(tǒng)谱邪?要考慮什么?
10.有沒有遇到進(jìn)線上GC庶诡,出現(xiàn)的癥狀是什么樣的惦银,怎么解決的?
11spring的加載過程末誓?
12.atomic 與 volatile的區(qū)別扯俱?
13.Thread的 notify()給notifyAll()的區(qū)別?
14.notifiy()是喚醒的那一個(gè)線程?
15.Thread.sleep()喚醒以后是否需要重新競(jìng)爭(zhēng)?
16.單例有多少種寫法? 有什么區(qū)別? 你常用哪一種單例喇澡,為什么用這種迅栅?
17.問一個(gè)Thread.join()相關(guān)的問題?
18.商品相關(guān)模塊系統(tǒng)怎么設(shè)計(jì)數(shù)據(jù)模型?
19.寫一個(gè)JAVA死鎖的列子?
20.如何解決死鎖?
21.GC回收算法,及實(shí)現(xiàn)原理?
22.HashMap數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)? key重復(fù)了怎么辦? 是如何解決的?
23.Spring AOP的實(shí)現(xiàn)原理晴玖,底層用什么實(shí)現(xiàn)的库继?
阿里技術(shù)面試2
電話面試主要考察3塊內(nèi)容:
Java的相關(guān)基礎(chǔ)知識(shí)箩艺,開源框架的原理窜醉,JVM宪萄,多線程,高并發(fā)榨惰,中間件等拜英;
之前項(xiàng)目經(jīng)歷,運(yùn)用的技術(shù)琅催,遇到的問題居凶,如何解決,個(gè)人有什么收獲和成長(zhǎng)藤抡;
對(duì)于技術(shù)的熱情(平時(shí)是否看些技術(shù)書籍侠碧,逛論壇,寫博客缠黍,寫源代碼或程序等)弄兜;
JAVA開發(fā)技術(shù)面試可能問到的問題?
我們主要考核的是網(wǎng)絡(luò)nio 分布式數(shù)據(jù)庫高并發(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(阿里巴巴開源框架)?設(shè)計(jì)模式?
場(chǎng)景式的問題:秒殺,能列出常見的排隊(duì)视卢、驗(yàn)證碼、庫存扣減方式對(duì)系統(tǒng)高并發(fā)的影響?
能根據(jù)實(shí)際的需要構(gòu)建緩存結(jié)構(gòu)提高提高網(wǎng)站的訪問速度廊驼,熟練使用ehcache据过、oscache,了解memcache妒挎。
了解基于dns輪詢的負(fù)載均衡绳锅,熟練配置web服務(wù)器實(shí)現(xiàn)負(fù)載均衡,程序級(jí)能綜合使用基于hash或取模等手段實(shí)現(xiàn)軟負(fù)載饥漫。
熟悉分布式數(shù)據(jù)庫設(shè)計(jì)和優(yōu)化技術(shù)榨呆,熟練使用mysql、oracle庸队、SqlServer等主流數(shù)據(jù)庫积蜻,熟悉hadoop hbase mangodb redis ehcache、oscache memcache彻消。對(duì)于大數(shù)據(jù)量的數(shù)據(jù)庫處理采用分表分庫竿拆、數(shù)據(jù)庫讀寫分離、建立緩存等手段優(yōu)化性能宾尚。
熟練掌握lucene丙笋,能基于lucene開發(fā)大型的搜索引擎谢澈,并能用lucene來改善和優(yōu)化數(shù)據(jù)庫的like查詢。
JAVA方向技術(shù)考察點(diǎn)(補(bǔ)充):
掌握J(rèn)ava編程語言御板,包含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ù)庫鲫懒,熟悉mysql集群搭建嫩实。
熟練使用redis等NOSQL技術(shù)。
熟悉tcp窥岩、http協(xié)議甲献。
熟悉nginx、haproxy等配置颂翼。
熟悉javascript晃洒、ajax等技術(shù)。
熟悉主流分布式文件系統(tǒng)FastDFS等朦乏。
熟悉JMS球及,可熟練使用ActiveMQ。
Java技術(shù)Leader要求能夠?qū)τ陧?xiàng)目本身知其然知其所以然,不僅技術(shù)功力深還要業(yè)務(wù)能力強(qiáng)有很好的idea和業(yè)務(wù)sense呻疹,并且對(duì)技術(shù)充滿興趣和渴望吃引,千萬不要面試官問一個(gè)問題答一個(gè),呆板的表情完全看不出任何自己的想法刽锤。
面試中描述你做的每一個(gè)項(xiàng)目:你做了什么工作镊尺?這些工作你解決了什么問題?還有什么困難沒有解決并思?這些困難在后續(xù)如何優(yōu)化庐氮??jī)?yōu)化后可以實(shí)現(xiàn)什么功能?這些功能如何和中間件和分布式并行系統(tǒng)聯(lián)系在一起宋彼?弄砍?Java中間件方向消息的傳輸方式mq長(zhǎng)連接短連接
Java 虛擬機(jī)有什么優(yōu)化仙畦?
底層計(jì)算機(jī)理解內(nèi)存管理/數(shù)據(jù)挖掘系統(tǒng)
可靠性和可用性如何理解~
jsp 和sever lap對(duì)比
數(shù)據(jù)庫到界面,字符集轉(zhuǎn)化
基棧
jvm優(yōu)化cup高的時(shí)候如果分析和監(jiān)控
java curb突出細(xì)節(jié)問題
分布式緩存文檔如何分流
遷移數(shù)據(jù)庫垂直分割
高并發(fā)如何處理前端高并發(fā)應(yīng)用層
LB設(shè)計(jì)load balance
負(fù)載均衡
防網(wǎng)絡(luò)攻擊
數(shù)據(jù)日志事件監(jiān)控后通知
數(shù)據(jù)庫事務(wù)實(shí)現(xiàn)的底層機(jī)制
字符串空格輸入的網(wǎng)絡(luò)攻擊
Quartz框架的底層原理
數(shù)據(jù)庫同步中不通過數(shù)據(jù)庫引擎直接讀日志等方式同步數(shù)據(jù)
如果你想學(xué)好JAVA這門技術(shù)音婶,也想在IT行業(yè)拿高薪慨畸,可以進(jìn)來看看 ,群里有:Java工程化桃熄、高性能及分布式先口、高性能、深入淺出瞳收。高架構(gòu)。性能調(diào)優(yōu)厢汹、Spring螟深,MyBatis,Netty源碼分析和大數(shù)據(jù)等多個(gè)知識(shí)點(diǎn)烫葬。
如果你想拿高薪的界弧,想學(xué)習(xí)的,想就業(yè)前景好的搭综,想跟別人競(jìng)爭(zhēng)能取得優(yōu)勢(shì)的垢箕,想進(jìn)阿里面試但擔(dān)心面試不過的,你都可以來兑巾,群號(hào):587372254?(小白和廣告勿擾)
阿里面試題
二叉樹的遍歷方式条获,前序、中序蒋歌、后序和層序
volatile關(guān)鍵字
synchronized
concurrentHashMap
鎖的優(yōu)化策略
操作系統(tǒng)
項(xiàng)目部分
緩存的使用帅掘,如果現(xiàn)在需要實(shí)現(xiàn)一個(gè)簡(jiǎn)單的緩存,供搜索框中的ajax異步請(qǐng)求調(diào)用堂油,使用什么結(jié)構(gòu)修档?
內(nèi)存中的緩存不能一直存在,用什么算法定期將搜索權(quán)重較低的entry去掉府框?
TCP如何保證安全性
紅黑樹的問題吱窝,B+數(shù)
JDK1.8中對(duì)HashMap的增強(qiáng),如果一個(gè)桶上的節(jié)點(diǎn)數(shù)量過多迫靖,鏈表+數(shù)組的結(jié)構(gòu)就會(huì)轉(zhuǎn)換為紅黑樹院峡。
項(xiàng)目中使用的單機(jī)服務(wù)器,如果將它部署成分布式服務(wù)器袜香?
MySQL的常見優(yōu)化方式撕予、定為慢查詢
手寫一個(gè)線程安全的單例模式
進(jìn)阿里必會(huì)知識(shí):
算法和數(shù)據(jù)結(jié)構(gòu)數(shù)組、鏈表蜈首、二叉樹实抡、隊(duì)列欠母、棧的各種操作(性能,場(chǎng)景)
二分查找和各種變種的二分查找
各類排序算法以及復(fù)雜度分析(快排吆寨、歸并赏淌、堆)
各類算法題(手寫)
理解并可以分析時(shí)間和空間復(fù)雜度。
動(dòng)態(tài)規(guī)劃(筆試回回有啄清。六水。)、貪心辣卒。
紅黑樹掷贾、AVL樹、Hash樹荣茫、Tire樹想帅、B樹、B+樹啡莉。
圖算法(比較少港准,也就兩個(gè)最短路徑算法理解吧)
計(jì)算機(jī)網(wǎng)絡(luò)OSI7層模型(TCP4層)每層的協(xié)議
url到頁面的過程
HTTPhttp/https 1.0、1.1咧欣、2.0
get/post 以及冪等性
http 協(xié)議頭相關(guān)
網(wǎng)絡(luò)攻擊(CSRF浅缸、XSS)
TCP/IP三次握手、四次揮手
擁塞控制(過程魄咕、閾值)
流量控制與滑動(dòng)窗口
TCP與UDP比較
子網(wǎng)劃分(一般只有筆試有)
DDos攻擊
(B)IO/NIO/AIO三者原理衩椒,各個(gè)語言是怎么實(shí)現(xiàn)的
Netty
Linux內(nèi)核select poll epoll
數(shù)據(jù)庫(最多的還是mysql,Nosql有redis)索引(包括分類及優(yōu)化方式蚕礼,失效條件烟具,底層結(jié)構(gòu))
sql語法(join,union奠蹬,子查詢朝聋,having,group by)
引擎對(duì)比(InnoDB囤躁,MyISAM)
數(shù)據(jù)庫的鎖(行鎖冀痕,表鎖,頁級(jí)鎖狸演,意向鎖言蛇,讀鎖,寫鎖宵距,悲觀鎖腊尚,樂觀鎖,以及加鎖的select sql方式)
隔離級(jí)別满哪,依次解決的問題(臟讀婿斥、不可重復(fù)讀劝篷、幻讀)
事務(wù)的ACID
B樹、B+樹
優(yōu)化(explain民宿,慢查詢娇妓,show profile)
數(shù)據(jù)庫的范式。
分庫分表活鹰,主從復(fù)制哈恰,讀寫分離。
Nosql相關(guān)(redis和memcached區(qū)別之類的志群,如果你熟悉redis着绷,redis還有一堆要問的)
操作系統(tǒng):進(jìn)程通信IPC(幾種方式),與線程區(qū)別
OS的幾種策略(頁面置換赖舟,進(jìn)程調(diào)度等蓬戚,每個(gè)里面有幾種算法)
互斥與死鎖相關(guān)的
linux常用命令(問的時(shí)候都會(huì)給具體某一個(gè)場(chǎng)景)
Linux內(nèi)核相關(guān)(select、poll宾抓、epoll)
編程語言(這里只說Java):把我之后的面經(jīng)過一遍,Java感覺覆蓋的就差不多了豫喧,不過下面還是分個(gè)類石洗。
Java基礎(chǔ)(面向?qū)ο蟆⑺膫€(gè)特性紧显、重載重寫讲衫、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