2018年4月份,阿里最新的java程序員面試題目

目錄

技術(shù)一面(23問(wèn))

技術(shù)二面(3大塊)

性能優(yōu)化(21點(diǎn))

項(xiàng)目實(shí)戰(zhàn)(34塊)

JAVA方向技術(shù)考察點(diǎn)(15點(diǎn))

JAVA開(kāi)發(fā)技術(shù)面試中可能問(wèn)到的問(wèn)題(17問(wèn))

阿里技術(shù)面試1

1.Java IO流的層次結(jié)構(gòu)?

2.請(qǐng)說(shuō)出常用的異常類型?

3.SKU的全稱是什么,SKU與SPU的區(qū)別及關(guān)系?

4.FileInputStream 在使用完以后,不關(guān)閉流,想二次使用可以怎么操作?

5.設(shè)計(jì)一個(gè)分步式登錄系統(tǒng)?

6.Spring加載過(guò)程?

7.自己有沒(méi)有寫過(guò)類似Spring這樣的AOP事務(wù)?

8.Java中 try..catch 關(guān)閉流的語(yǔ)法糖?

9.如何設(shè)計(jì)一個(gè)秒殺系統(tǒng)?要考慮什么?

10.有沒(méi)有遇到進(jìn)線上GC,出現(xiàn)的癥狀是什么樣的,怎么解決的?

11spring的加載過(guò)程?

12.atomic 與 volatile的區(qū)別?

13.Thread的 notify()給notifyAll()的區(qū)別?

14.notifiy()是喚醒的那一個(gè)線程?

15.Thread.sleep()喚醒以后是否需要重新競(jìng)爭(zhēng)?

16.單例有多少種寫法? 有什么區(qū)別? 你常用哪一種單例,為什么用這種?

17.問(wèn)一個(gè)Thread.join()相關(guān)的問(wè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í),開(kāi)源框架的原理,JVM,多線程,高并發(fā),中間件等;

之前項(xiàng)目經(jīng)歷,運(yùn)用的技術(shù),遇到的問(wèn)題,如何解決,個(gè)人有什么收獲和成長(zhǎng);

對(duì)于技術(shù)的熱情(平時(shí)是否看些技術(shù)書籍,逛論壇,寫博客,寫源代碼或程序等);

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ù)讀寫分離、建立緩存等手段優(yōu)化性能。

熟練掌握l(shuí)ucene,能基于lucene開(kāi)發(fā)大型的搜索引擎,并能用lucene來(lái)改善和優(yōu)化數(shù)據(jù)庫(kù)的like查詢。

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。

Java技術(shù)Leader要求能夠?qū)τ陧?xiàng)目本身知其然知其所以然,不僅技術(shù)功力深還要業(yè)務(wù)能力強(qiáng)有很好的idea和業(yè)務(wù)sense,并且對(duì)技術(shù)充滿興趣和渴望,千萬(wàn)不要面試官問(wèn)一個(gè)問(wèn)題答一個(gè),呆板的表情完全看不出任何自己的想法。

面試中描述你做的每一個(gè)項(xiàng)目:你做了什么工作?這些工作你解決了什么問(wèn)題?還有什么困難沒(méi)有解決?這些困難在后續(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ù)庫(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ù)

如果你想學(xué)好JAVA這門技術(shù),也想在IT行業(yè)拿高薪,可以進(jìn)來(lái)看看 ,群里有: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)心面試不過(guò)的,你都可以來(lái),群號(hào):587372254?(小白和廣告勿擾)

阿里面試題

二叉樹(shù)的遍歷方式,前序、中序、后序和層序

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如何保證安全性

紅黑樹(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)化方式、定為慢查詢

手寫一個(gè)線程安全的單例模式

進(jìn)阿里必會(huì)知識(shí):

算法和數(shù)據(jù)結(jié)構(gòu)數(shù)組、鏈表、二叉樹(shù)、隊(duì)列、棧的各種操作(性能,場(chǎng)景)

二分查找和各種變種的二分查找

各類排序算法以及復(fù)雜度分析(快排、歸并、堆)

各類算法題(手寫)

理解并可以分析時(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í)鎖,意向鎖,讀鎖,寫鎖,悲觀鎖,樂(lè)觀鎖,以及加鎖的select sql方式)

隔離級(jí)別,依次解決的問(wèn)題(臟讀、不可重復(fù)讀、幻讀)

事務(wù)的ACID

B樹(shù)、B+樹(shù)

優(yōu)化(explain,慢查詢,show profile)

數(shù)據(jù)庫(kù)的范式。

分庫(kù)分表,主從復(fù)制,讀寫分離。

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è)特性、重載重寫、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


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂(lè)視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,783評(píng)論 11 349
  • 在1982年的環(huán)峰小學(xué)——那時(shí),它剛剛從東方紅小學(xué)改名環(huán)峰小學(xué)——五一班光輝燦爛得簡(jiǎn)直就是一個(gè)神話般的傳說(shuō)。 縣城...
    真沒(méi)有冬天閱讀 776評(píng)論 2 7
  • 每一次的出發(fā)總是信心滿滿,胸有成竹。 每一次的半途而廢也總是死于平臺(tái)期。 平臺(tái)期就好比是車子沒(méi)油一般,回不到起點(diǎn),...
    玄玄被用了閱讀 880評(píng)論 0 1
  • 每一天晚上記錄生活中的發(fā)生的點(diǎn)滴對(duì)我來(lái)說(shuō)是一件很浪漫的事,尤其是還有陳亦迅的歌作為背景音樂(lè),若干年后想出一本自傳,...
    靜思凈斯閱讀 360評(píng)論 0 0
  • 總是認(rèn)為自己已經(jīng)久經(jīng)沙場(chǎng)的人,往往是最不諳世事。聰明人都知道少說(shuō)話多做事,只有不諳世事的人才會(huì)認(rèn)為自己會(huì)比別人知道...
    歲月不改溫柔閱讀 211評(píng)論 0 0

友情鏈接更多精彩內(nèi)容