秋招收工裂垦,獲京東/拼多多/華為/阿里Java崗offer顺囊,總結(jié)我的面經(jīng)

秋招結(jié)束,已經(jīng)獲取京東特碳,拼多多午乓,OPPO硅瞧,小米,華為瘾英,阿里Offer缺谴。這次不多說太多湿蛔,分享下Java面試的一些高頻問點(diǎn)面經(jīng)阳啥,希望對還在找工作的朋友有所幫助察迟!不要私藏哦耳高,可以轉(zhuǎn)發(fā)朋友圈讓給身邊的朋友參考參考哈哈哈哈泌枪!

計(jì)算機(jī)網(wǎng)絡(luò)

這些問題是最常見,感覺基本上也就會問這些误证。

  1. OIS參考模型雷厂,每一層涉及到了哪些協(xié)議,每一層負(fù)責(zé)了什么诈皿?

  2. 最重要的就是傳輸層,這一塊一定要好好看

  3. TCP的特點(diǎn)是什么截歉?什么是窗口滑動協(xié)議瘪松,什么是快速重傳,什么是擁塞避免墅诡,什么是慢啟動末早?怎么做到可靠數(shù)據(jù)傳輸然磷?

  4. TCP的流量控制是什么姿搜?如果RcvWindow=0應(yīng)該怎么辦痪欲?

  5. 有哪幾種定時(shí)器悦穿?作用分別是什么业踢?

  6. TCP和UDP的區(qū)別栗柒?什么場景使用TCP,什么場景什么UDP瞬沦?哪些應(yīng)用層協(xié)議使用了TCP,哪些使用了UDP逛钻?UDP要實(shí)現(xiàn)可靠數(shù)據(jù)傳輸應(yīng)該怎么做僚焦?

  7. TCP的三次握手和四次揮手?為什么是三次曙痘,為什么是四次?為什么TCP采用隨機(jī)初始序列號?客戶端和服務(wù)器最多能發(fā)送和接收多少TCP連接數(shù)茧痒?(最后一個(gè)問的較少)

  8. 如果TCP連接的時(shí)候服務(wù)器發(fā)送的最后一個(gè)報(bào)文時(shí)弄企,客戶端掛了會怎樣区拳?那如果服務(wù)器宕機(jī)了劳闹,客戶端怎么處理?

  9. TIME_WAIT 和 CLOSE_WAIT 狀態(tài)洽瞬?TIME_WAIT 為什么需要保持 2MSL 這么長的時(shí)間本涕?大量TIME_WAIT造成的影響?如何盡量處理 TIMEWAIT 過多伙窃?

  10. TCP粘包(問的較少)

  11. 影響TCP 網(wǎng)絡(luò)時(shí)延的因素

  12. 當(dāng)你輸入域名訪問一個(gè)網(wǎng)站的時(shí)候菩颖,背后的過程是什么涉及到哪些協(xié)議?

  13. 什么是https協(xié)議为障?https協(xié)議用到了哪種密鑰晦闰?

  14. 什么是有狀態(tài)什么是無狀態(tài)?

  15. HTTP的八種請求鳍怨?GET和POST的區(qū)別呻右?

  16. HTTP的一些常見的狀態(tài)碼要熟悉!重定向和轉(zhuǎn)發(fā)的區(qū)別鞋喇?

  17. HTTP和HTTPS的區(qū)別声滥?HTTP1.0和HTTP1.1的區(qū)別?

  18. HTTPS的工作流程侦香?

  19. Cookie落塑,Session纽疟,Token的區(qū)別

  20. SSL加密的過程?延伸出對稱加密和非對稱加密的過程和區(qū)別

  21. DNS協(xié)議憾赁!域名解析過程污朽,遞歸查詢和迭代查詢的區(qū)別?

  22. Ping命令的過程和ARP協(xié)議(這個(gè)做了解就好了)

image

操作系統(tǒng)

這個(gè)是比較慘的龙考,但是一般問的不深蟆肆。

  1. 進(jìn)程和線程的區(qū)別是什么?進(jìn)程和線程占有的資源是哪些洲愤?

  2. 操作系統(tǒng)創(chuàng)建進(jìn)程的過程颓芭?進(jìn)程的狀態(tài)和控制原語?Java的Runnable對應(yīng)著哪些操作系統(tǒng)狀態(tài)柬赐?還有哪些控制函數(shù)像sleep亡问,notify這些改成成什么狀態(tài)了?

  3. 進(jìn)程間通信肛宋!為什么需要進(jìn)程間通信州藕?線程通信?

  4. 進(jìn)程同步和進(jìn)程互斥酝陈。實(shí)現(xiàn)臨界區(qū)互斥的基本方法床玻?

  5. 如何正確的停止一個(gè)線程!

  6. 中斷和異常

  7. 進(jìn)程隔離沉帮,虛擬內(nèi)存锈死,虛擬地址空間

  8. 多線程、多進(jìn)程的區(qū)別及適用場景

  9. 什么是緩存穆壕?有哪些緩存的更新算法待牵?

  10. 用過的Linux命令,常用:看被占用的端口的進(jìn)程喇勋;查看一個(gè)進(jìn)程的端口號缨该;顯示CPU的信息 ,查看CPU使用率川背;查看所有進(jìn)程贰拿;查看進(jìn)程的詳細(xì)信息;查看內(nèi)存使用情況等等

  11. 僵尸進(jìn)程熄云,孤兒進(jìn)程以及守護(hù)進(jìn)程膨更?怎么創(chuàng)建一個(gè)守護(hù)線程?僵尸進(jìn)程危害以及避免僵尸進(jìn)程的方式!

  12. 進(jìn)程調(diào)度算法以及死鎖缴允!產(chǎn)生死鎖原因询一;產(chǎn)生死鎖的條件;處理死鎖的幾種條件;銀行家算法

  13. 操作系統(tǒng)的特征(這個(gè)最基本健蕊,但是一次面試我不知道)

數(shù)據(jù)庫

  1. 數(shù)據(jù)庫的事務(wù)菱阵,事物的特性,事務(wù)的隔離級別分別解決了哪些問題缩功,理解什么是臟讀晴及,幻讀! 事務(wù)的實(shí)現(xiàn)原理通過什么要保證的事務(wù)的特性嫡锌?

  2. 什么是左連接虑稼,什么是右連接,什么是全連接势木,什么是內(nèi)連接蛛倦?

  3. 數(shù)據(jù)庫的索引有什么作用?用什么來實(shí)現(xiàn)的啦桌?好處壞處是啥溯壶?

  4. 索引的種類,原理甫男,索引存了哪些內(nèi)容且改,什么時(shí)候索引會失效?唯一索引和主鍵索引的區(qū)別板驳!單列和聯(lián)合索引又跛,最左匹配原則,什么時(shí)候該用聯(lián)合索引若治?

  5. 怎么看這個(gè)表是否加了索引慨蓝?

  6. B樹和B+樹有什么區(qū)別?為什么索引不用B樹端幼?那B+樹的葉子結(jié)點(diǎn)上存了哪些信息礼烈?

  7. 數(shù)據(jù)庫的鎖?樂觀鎖悲觀鎖静暂,共享鎖和排它鎖济丘。

  8. MySql中主要使用的引擎谱秽,它們主要的區(qū)別是啥洽蛀。

  9. 數(shù)據(jù)庫范式

  10. 數(shù)據(jù)庫五大約束?

  11. 數(shù)據(jù)庫連接池:工作原理疟赊,參數(shù)郊供,種類,會出現(xiàn)的問題

  12. 數(shù)據(jù)庫的讀寫分離近哟,數(shù)據(jù)切分(數(shù)據(jù)庫分庫分表驮审,水平切分垂直切分啊)

  13. 數(shù)據(jù)庫的主從:實(shí)現(xiàn)原理,mysql主從復(fù)制的方式疯淫,如何配置主從同步地来,主從同步會出現(xiàn)的問題

image

數(shù)據(jù)結(jié)構(gòu)和算法

image

Java知識

Java知識要準(zhǔn)備的太多了,很多細(xì)節(jié)熙掺,我就撿著說一些都是我自己匯總的一些

Java 基礎(chǔ)

  1. Java和c++的區(qū)別(第一次被問我說的很糟)未斑,Java為什么跨平臺?

  2. Java語言的特點(diǎn)和特性(第一次我也回答的很糟)币绩,多態(tài)的底層原理蜡秽?

  3. 抽象類和接口的區(qū)別?抽象類與普通類的區(qū)別缆镣?

  4. Java訪問修飾符有哪些芽突?

  5. this關(guān)鍵字和super關(guān)鍵字?

  6. Object類下面的方法董瞻,尤其是hashCode方法和equals方法寞蚌?

  7. == 和 equals 的區(qū)別是什么?若對一個(gè)類不重寫力细,它的equals()方法是如何比較的睬澡?int 和Integer的比較!

  8. Java基本的數(shù)據(jù)類型眠蚂?

  9. String為什么不可變煞聪?好處在哪?String 常量池逝慧?String昔脯, Stringbuffer, StringBuilder 的區(qū)別笛臣。

  10. static關(guān)鍵字(第一次問我忘了都不知道)和final關(guān)鍵字

  11. ArrayList 和 LinkedList 區(qū)別云稚?三種方式訪問集合中的元素,ArrayList遍歷刪除會出的問題沈堡?Foreach原理以及Fail-fast機(jī)制静陈!

Java泛型

  1. Java反射:反射的好處;得到class的方式诞丽;反射的原理

  2. Throwable鲸拥、error矢洲、exception的區(qū)別贷掖?異常的種類!

  3. Java創(chuàng)建線程的四種方式酥郭?線程實(shí)現(xiàn)callable接口和runnable接口的區(qū)別懂衩?線程中start和run的區(qū)別撞叨?

  4. sleep()金踪,wait(),yield()和join()方法牵敷?sleep()與wait()的區(qū)別胡岔?

  5. Java是值傳遞還是引用傳遞

  6. Java的null類型?java創(chuàng)建對象時(shí)枷餐,new 出一個(gè)對象 和 = null的區(qū)別姐军?空串與null串?

  7. Java中創(chuàng)建對象的5種方式尖淘?

  8. 為什么會出現(xiàn) 4.0-3.6=0.40000001 這種現(xiàn)象奕锌?

  9. HashMap,HashTable,CourrentHashMap:

  10. HashMap的底層實(shí)現(xiàn)村生,put惊暴,get過程;

  11. 如何解決Hash碰撞的趁桃;(延伸出Hash沖突的幾種解決方法)

  12. HashMap的初始化容量為什么為2的次冪辽话?

  13. 為什么HashMap是非線程安全的?

  14. HashMap和HashTable的區(qū)別卫病?

  15. 為什么HashMap長度大于8才轉(zhuǎn)換為紅黑樹油啤,而不是6?

  16. HashMap和TreeMap比較蟀苛?

  17. HashMap,HashTable,CourrentHashMap的key和value是否可為null益咬?那為什么這么設(shè)計(jì)?

  18. CourrentHashMap為什么是線程安全的帜平?(引出Java線程安全幽告,Volatile關(guān)鍵字,CAS這些)

  19. 并發(fā)編程的的三個(gè)概念(特性)裆甩?為什么會有Volatile關(guān)鍵字冗锁?volatile關(guān)鍵字的兩層語義!嗤栓!Volatile底層原理6澈印!

  20. 什么是線程安全茉帅?產(chǎn)生線程不安全的原因是什么叨叙?Java線程安全的類?

  21. Java線程安全的類:公平鎖/非公平鎖担敌;可重入鎖摔敛;獨(dú)享鎖/共享鎖廷蓉;樂觀鎖/悲觀鎖全封;自旋鎖等等

  22. synchronized關(guān)鍵字:三種應(yīng)用方式马昙;為什么能實(shí)現(xiàn)實(shí)現(xiàn)內(nèi)存可見性;底層原理是啥刹悴?

  23. ReentrantLock關(guān)鍵字:實(shí)現(xiàn)原理行楞;CAS原理以及CSA的問題

  24. synchronized和ReentrantLock的異同以及Synchronized修飾靜態(tài)方法和成員方法的區(qū)別?

image

線程池

  1. 線程池的好處土匀?

  2. 基本組成部分子房?

  3. Java中的ThreadPoolExecutor類!線程池涉及到的參數(shù)就轧!

  4. 線程池的狀態(tài)证杭?

  5. 線程池任務(wù)執(zhí)行流程!妒御!

  6. 任務(wù)緩存隊(duì)列及排隊(duì)策略解愤,如何自定義拒絕策略?

  7. 線程池的種類乎莉?

  8. 配置線程池大小送讲,根據(jù)CPU密集和IO密集劃分

  9. 阻塞隊(duì)列以及生產(chǎn)者消費(fèi)者的實(shí)現(xiàn)

  10. 內(nèi)存泄漏和內(nèi)存溢出,常見的內(nèi)存泄露(介紹一下HashMap泄露的場景)惋啃,避免內(nèi)存泄漏的幾點(diǎn)建議哼鬓?如何定位找到內(nèi)存泄漏!边灭!

  11. ThreadLocal介紹异希,實(shí)現(xiàn)原理!绒瘦!ThreadLocal是如何做到為每一個(gè)線程維護(hù)變量的副本的呢宠互?ThreadLocal和同步機(jī)制的區(qū)別。

  12. 設(shè)計(jì)模式的單例和工廠是面得最多的椭坚!單例的幾種實(shí)現(xiàn)方式予跌,一般寫典型的雙重檢查鎖定,因?yàn)闀由斐鰒olatile善茎,線程安全這些券册。

  13. 然后就是餓漢式,線程安全為什么不用這個(gè)方式呢垂涯,簡單又線程安全烁焙?然后是抽象工廠模式和工廠方法模式區(qū)別?JDK或者Spring當(dāng)中哪里用了設(shè)計(jì)模式耕赘?

JVM:

  1. Java內(nèi)存模型骄蝇?JVM內(nèi)存結(jié)構(gòu)?內(nèi)存模型和內(nèi)存結(jié)構(gòu)的聯(lián)系操骡?Java對象結(jié)構(gòu)九火?

  2. JAVA虛擬機(jī)內(nèi)存劃分赚窃?每個(gè)區(qū)域分別裝著哪些東西

  3. 為什么要?jiǎng)澐郑?/p>

  4. 堆的劃分,為什么要設(shè)置兩個(gè)Survivor區(qū)岔激?新生代 Survivor 空間不足怎么辦勒极?年輕代的幾個(gè)參數(shù)?

  5. 一個(gè)對象從創(chuàng)建到銷毀都是怎么在這些部分里存活和轉(zhuǎn)移的虑鼎?

  6. Java中new對象干的幾件事辱匿?

  7. Java四種引用狀態(tài)?

  8. 類加載的過程炫彩?類加載基于的機(jī)制匾七?為什么要雙親委派?為什么需要破壞雙親委派江兢?自己寫個(gè)String能加載嗎乐尊?類初始化時(shí)機(jī)?

  9. 對象的創(chuàng)建的過程划址?

  10. GC算法與垃圾回收扔嵌!為什么需要垃圾回收以及什么時(shí)候GC?GC涉及到的內(nèi)存部分夺颤?對象存活判斷的幾種方式痢缎?

  11. 說一下你了解的幾個(gè)垃圾收集器

  12. JVM初始化步驟

  13. JVM調(diào)優(yōu)(這個(gè)比較少)

  14. Java 虛擬機(jī)棧會出現(xiàn)的兩種異常?

image

項(xiàng)目

Redis:

  1. Redis是什么世澜,用在哪独旷?Redis 的缺點(diǎn)?

  2. Redis是單線程的為什么速度那么快寥裂?那它為什么弄成了單線程的嵌洼?

  3. Redis和memcache有什么區(qū)別?Redis和MySql的區(qū)別封恰?

  4. Redis 支持的數(shù)據(jù)類型有哪些麻养?用在什么場景?它的底層數(shù)據(jù)結(jié)構(gòu)是啥诺舔?Zset底層為什么要用兩個(gè)數(shù)據(jù)結(jié)構(gòu)鳖昌?

  5. Redis的并發(fā)競爭問題如何解決?

  6. Redis的緩存穿透低飒,緩存雪崩许昨,緩存擊穿?怎么解決褥赊?

  7. 怎么保證緩存和數(shù)據(jù)庫數(shù)據(jù)的一致性糕档?

  8. Redis有哪些數(shù)據(jù)淘汰策略

  9. Redis持久化方式!拌喉!

  10. Redis集群速那!集群是如何判斷是否有某個(gè)節(jié)點(diǎn)掛掉俐银?集群進(jìn)入fail狀態(tài)的必要條件?

  11. Redis哨兵

  12. Redis主從復(fù)制和一致性保證琅坡!

  13. Redis熱key問題

image

Spring:

  1. 這一塊問的比較少其實(shí),但是IOC和AOP問的很多

  2. SpringBoot的啟動和運(yùn)行原

  3. IOC和AOP原理残家?

  4. Spring生成代理對象

  5. BeanFactory 和 FactoryBean 的區(qū)別

  6. Spring各個(gè)注解的作用榆俺?注解的原理?

  7. 哪些bean會被掃描坞淮?Bean的生命周期\罱!

  8. Spring 實(shí)例化 Bean 的過程回窘。

  9. Spring 直接注入和直接new一個(gè)對象有什么不同诺擅?

  10. Spring事務(wù)管理:事務(wù)原理?事務(wù)管理接口啡直?實(shí)現(xiàn)方式烁涌!

  11. Spring解決對象相互依賴

Kafka:

  1. 優(yōu)點(diǎn)和缺點(diǎn)?和傳統(tǒng)的MQ對比有什么區(qū)別酒觅?

  2. 為什么 Kafka 吞吐量高

  3. 一些概念像broker撮执,topic,partition這些

  4. partition 刪除策略

  5. 寫入可靠性保障(分布式一致性問題)

  6. 兩種消費(fèi)模式

  7. kafka消費(fèi)者消費(fèi)消息的流程

  8. kafka 如何保證消息有序

  9. 消息丟失場景:如何防止數(shù)據(jù)丟失舷丹,消息重復(fù)解決方案

  10. 主節(jié)點(diǎn)選擇方案

  11. 個(gè)人不同項(xiàng)目會問的:(高并發(fā))

  12. 如何解決超賣少賣抒钱?

  13. 你自己重新設(shè)計(jì)一下,一個(gè)高并發(fā)颜凯,你要怎么應(yīng)對

  14. 單用戶訂單存Hash谋币,那一個(gè)用戶下了很多單怎么辦?

  15. 減庫存然后下訂單症概,但是服務(wù)器宕機(jī)蕾额?

  16. 負(fù)載均衡實(shí)現(xiàn)方式,策略彼城?

  17. 限流主要的算法凡简?令牌桶算法的缺點(diǎn)在哪?(導(dǎo)致不公平性)

最后

以上面經(jīng)解析整理

關(guān)注公眾號:“程序員白楠楠”獲染唷秤涩!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市司抱,隨后出現(xiàn)的幾起案子筐眷,更是在濱河造成了極大的恐慌,老刑警劉巖习柠,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件匀谣,死亡現(xiàn)場離奇詭異照棋,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)武翎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進(jìn)店門烈炭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人宝恶,你說我怎么就攤上這事符隙。” “怎么了垫毙?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵霹疫,是天一觀的道長。 經(jīng)常有香客問我综芥,道長丽蝎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任膀藐,我火速辦了婚禮屠阻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘额各。我一直安慰自己栏笆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布臊泰。 她就那樣靜靜地躺著蛉加,像睡著了一般。 火紅的嫁衣襯著肌膚如雪缸逃。 梳的紋絲不亂的頭發(fā)上针饥,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天,我揣著相機(jī)與錄音需频,去河邊找鬼丁眼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛昭殉,可吹牛的內(nèi)容都是我干的苞七。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼挪丢,長吁一口氣:“原來是場噩夢啊……” “哼蹂风!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起乾蓬,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤惠啄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體撵渡,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡融柬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了趋距。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粒氧。...
    茶點(diǎn)故事閱讀 39,739評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖节腐,靈堂內(nèi)的尸體忽然破棺而出外盯,到底是詐尸還是另有隱情,我是刑警寧澤铜跑,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布门怪,位于F島的核電站骡澈,受9級特大地震影響锅纺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜肋殴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一囤锉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧护锤,春花似錦官地、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至氯析,卻和暖如春亏较,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背掩缓。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工雪情, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人你辣。 一個(gè)月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓巡通,卻偏偏與公主長得像,于是被迫代替她去往敵國和親舍哄。 傳聞我的和親對象是個(gè)殘疾皇子宴凉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評論 2 354