最新攜程、虎牙Java開(kāi)發(fā)崗面經(jīng)分享

攜程一面:
攜程總部大樓(上海市長(zhǎng)寧區(qū)金鐘路),汽車(chē)票船票組,面試官兩位(項(xiàng)目經(jīng)理+開(kāi)發(fā)人員)
1、項(xiàng)目了解
此處手繪系統(tǒng)架構(gòu)圖,并表明自己負(fù)責(zé)的哪一塊,我們項(xiàng)目中對(duì)ES和RocketMQ使用比較多
2、線程池參數(shù)(最好是自己手寫(xiě)過(guò)線程池)
corePoolSize 指定了線程池里的線程數(shù)量
maximumPoolSize 指定了線程池里的最大線程數(shù)量
RejectPolicy 拒絕策略,當(dāng)任務(wù)過(guò)多時(shí)候,如何拒絕任務(wù)
AbortPolicy 丟棄任務(wù)并拋出RejectedExecutionException異常。
DiscardPolicy 丟棄任務(wù),但是不拋出異常。如果線程隊(duì)列已滿,則后續(xù)提交的任務(wù)都會(huì)被丟棄,且是靜默丟棄
CallerRunsPolicy 丟棄隊(duì)列最前面的任務(wù),然后重新提交被拒絕的任務(wù)
DiscardOldestPolicy 由調(diào)用線程處理該任務(wù)
keepAliveTime 當(dāng)線程池線程數(shù)量大于corePoolSize時(shí)候,多出來(lái)的空閑線程,多長(zhǎng)時(shí)間會(huì)被銷(xiāo)毀。
ThreadFactory 線程工廠,用于創(chuàng)建線程,一般可以用默認(rèn)的
workQueue 任務(wù)隊(duì)列,用于存放提交但是尚未被執(zhí)行的任務(wù)
unit 時(shí)間單位
3、MQ的順序消費(fèi)痛點(diǎn)
異常后會(huì)阻塞
多個(gè)隊(duì)列,分布式全局不太好處理
4、JVM內(nèi)存模型
jdk1.7 永久代
jdk1.8 元空間
stack內(nèi)存(棧幀)
jvm調(diào)優(yōu)參數(shù),jstack使用
5、并發(fā)編程
我在項(xiàng)目中CountDown等待所有線程減一結(jié)束,然后主線程獲取Future中的結(jié)果
Volatile關(guān)鍵字使用
6、鎖
synchronize 互斥鎖
ReentrantLock 可重入鎖(自旋鎖)
7、MYSQL索引執(zhí)行查看策略
使用explain查看執(zhí)行策略

虎牙面試題
自我介紹。
項(xiàng)目中怎么做的服務(wù)端分頁(yè)?
用的mysql 還是 oracle 數(shù)據(jù)庫(kù)?
有一條sql 語(yǔ)句執(zhí)行很慢,如何排查問(wèn)題?
如何查看sql 執(zhí)行計(jì)劃?explain 命令的執(zhí)行結(jié)果介紹下?
索引為什么能加快查詢速度?
問(wèn)幾個(gè)Java 基礎(chǔ)知識(shí)吧,Java 虛擬機(jī)你了解嗎,介紹一下,能說(shuō)多少說(shuō)多少?
假設(shè)有一個(gè)String str = new String("hello world");這條語(yǔ)句創(chuàng)建了幾個(gè)對(duì)象,分別在 JVM 的 哪個(gè)區(qū)域?
假設(shè)項(xiàng)目中需要用到線程同步,你會(huì)考慮怎么實(shí)現(xiàn)?
Java 中的鎖了解嗎,介紹一下?
什么是樂(lè)觀鎖、悲觀鎖,在Java 中分別有哪些實(shí)現(xiàn)類(lèi)?
線程池用過(guò)嗎?
如何創(chuàng)建線程池?
Executors 類(lèi)可以創(chuàng)建哪些線程池?
線程池初始化參數(shù)詳細(xì)介紹?
什么時(shí)候會(huì)開(kāi)啟核心線程以外的線程?
什么時(shí)候會(huì)用到拒絕策略?Spring 原碼看過(guò)嗎?
最后問(wèn)個(gè)場(chǎng)景題,現(xiàn)在要查詢數(shù)據(jù)庫(kù),數(shù)據(jù)兩位2 千萬(wàn)行,使用多線程實(shí)現(xiàn),你有什么思路
嗎?不能重復(fù)讀取,數(shù)據(jù)全部讀取完之后才進(jìn)行數(shù)據(jù)操作。
假設(shè)有一個(gè)線程查詢失敗如何處理?
hashmap concurrenthashmap
list set map
jvm 內(nèi)存模型 垃圾回收等(都是一些常見(jiàn)的問(wèn)爛的)
進(jìn)程、線程結(jié)合JVM 說(shuō)
mysql 事務(wù) 鎖 (間隙鎖 next key lock)
mysql 事務(wù) 怎么實(shí)現(xiàn)的 對(duì)應(yīng)相關(guān)的日志來(lái)說(shuō) undo log
redo log 等
mysql 索引優(yōu)化 執(zhí)行計(jì)劃
spring 中源碼看過(guò)啥 說(shuō)了下 spring aop ,ioc springboot 自動(dòng)裝配
redis 項(xiàng)目中怎么用的。。balabal 項(xiàng)目相關(guān)問(wèn)了還蠻多
mysql 中死鎖怎么解決
線程池balabala 常用線程池,平時(shí)手寫(xiě)線程池,參數(shù)配置(7 個(gè)參數(shù)) 平時(shí)怎么設(shè)置 的
無(wú)反問(wèn)環(huán)節(jié)


獲取往期以上更多最新面試題資料,直接轉(zhuǎn)發(fā)一下這篇文章+關(guān)注公眾號(hào)【Java爛豬皮】關(guān)注后回復(fù)【666】即可獲取哦~

騰訊、阿里、滴滴后臺(tái)面試題匯總總結(jié) — (含答案)
面試:史上最全多線程面試題 !
最新阿里內(nèi)推Java后端面試題
JVM難學(xué)?那是因?yàn)槟銢](méi)認(rèn)真看完這篇文章

關(guān)注作者微信公眾號(hào) —《JAVA爛豬皮》
了解更多java后端架構(gòu)知識(shí)以及最新面試寶典


看完本文記得給作者點(diǎn)贊+在看哦~~~大家的支持,是作者源源不斷出文的動(dòng)力
