注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)計(jì)算機(jī)科學(xué)理論與基礎(chǔ)知識(shí)Java面試八股文:高頻面試題與求職攻略一本通(視頻解說(shuō)版)

Java面試八股文:高頻面試題與求職攻略一本通(視頻解說(shuō)版)

Java面試八股文:高頻面試題與求職攻略一本通(視頻解說(shuō)版)

定 價(jià):¥128.00

作 者: 譚勇德(Tom)
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787121455582 出版時(shí)間: 2023-06-01 包裝: 平塑勒
開(kāi)本: 128開(kāi) 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書將碎片化的Java面試“八股文”知識(shí)點(diǎn)系統(tǒng)化、結(jié)構(gòu)化,精選了近200道經(jīng)典高頻的“八股文”面試題,整理了近20個(gè)經(jīng)典高頻的“實(shí)戰(zhàn)場(chǎng)景”解決方案,準(zhǔn)備了10多個(gè)面試簡(jiǎn)歷實(shí)操技巧。每道面試題都標(biāo)注了難度指數(shù)、考查頻率、開(kāi)發(fā)年限和匹配崗位等,并配置了二維碼,掃碼即可同步觀看視頻解說(shuō),能夠讓讀者享受到“同聲傳譯”式的體驗(yàn)。本書內(nèi)容覆蓋了Java基礎(chǔ)知識(shí),并發(fā)編程與多線程,集合原理,JVM原理,I/O與網(wǎng)絡(luò)編程,設(shè)計(jì)模式,Spring全家桶,Dubbo、Netty、MyBatis等互聯(lián)網(wǎng)常用框架,分布式與微服務(wù),MySQL數(shù)據(jù)庫(kù),緩存與NoSQL,消息中間件,互聯(lián)網(wǎng)經(jīng)典場(chǎng)景及面試求職攻略,覆蓋了90%以上常見(jiàn)的面試知識(shí)點(diǎn)。本書非常適合未來(lái)想從事Java開(kāi)發(fā)相關(guān)工作的學(xué)生、準(zhǔn)備面試的Java程序員、不知道如何修改簡(jiǎn)歷的技術(shù)人員閱讀。希望本書可以幫助讀者完成短期面試突擊,獲得理想的Offer。

作者簡(jiǎn)介

  譚勇德(Tom)咕泡科技聯(lián)合創(chuàng)始人。現(xiàn)擔(dān)任咕泡產(chǎn)品總監(jiān)一職,主要負(fù)責(zé)課程產(chǎn)品、技術(shù)產(chǎn)品的標(biāo)準(zhǔn)定義和設(shè)計(jì)。一個(gè)從美術(shù)生轉(zhuǎn)型Java開(kāi)發(fā)的程序員,3年內(nèi)做到架構(gòu)師,5年內(nèi)做到CTO。自研開(kāi)發(fā)過(guò)多套企業(yè)內(nèi)部UI框架和ORM框架。14年Java從業(yè)經(jīng)驗(yàn),6年線上教學(xué)經(jīng)驗(yàn)。已培養(yǎng)5萬(wàn)名學(xué)員進(jìn)入主流互聯(lián)網(wǎng)企業(yè)。國(guó)內(nèi)首創(chuàng)《互聯(lián)網(wǎng)程序員職業(yè)成長(zhǎng)發(fā)展路線圖》《互聯(lián)網(wǎng)程序員職業(yè)各成長(zhǎng)階段能力模型》,已影響全國(guó)100W+程序員。 開(kāi)創(chuàng)“手寫源碼學(xué)習(xí)法”,已讓全國(guó)60W+學(xué)員受益。 獲2022年“51CTO專家博主”,獲“掘金2021年受歡迎創(chuàng)作者”,獲“2021年CSDN IT領(lǐng)軍人物”,全網(wǎng)粉絲已超過(guò)50W。著有暢銷書《Spring 5核心原理與30個(gè)類手寫實(shí)戰(zhàn)》《Netty 4核心原理與手寫RPC框架實(shí)戰(zhàn)》《設(shè)計(jì)模式就該這樣學(xué)》,電子工業(yè)出版社博文視點(diǎn)優(yōu)秀作者,電子工業(yè)出版社“Java架構(gòu)師成長(zhǎng)叢書”長(zhǎng)期簽約作者。關(guān)注公眾號(hào)“Tom彈架構(gòu)”獲取更多干貨。譚鋒(Mic)咕泡科技聯(lián)合創(chuàng)始人。目前擔(dān)任教學(xué)總監(jiān)一職,負(fù)責(zé)微服務(wù)及高并發(fā)領(lǐng)域的課程設(shè)計(jì)和研發(fā)。2017年開(kāi)始創(chuàng)業(yè),至今已有6年多時(shí)間,擁有14年Java開(kāi)發(fā)架構(gòu)經(jīng)驗(yàn),其中包括4年授課經(jīng)驗(yàn),培養(yǎng)了5萬(wàn)名學(xué)員,學(xué)員遍布一二線城市的主流互聯(lián)網(wǎng)企業(yè)。曾就職于中國(guó)電信、平安支付、挖財(cái)?shù)裙?,?dān)任技術(shù)經(jīng)理/架構(gòu)師崗位。在平安支付主導(dǎo)了基于Dubbo的服務(wù)化架構(gòu)設(shè)計(jì)和落地,在挖財(cái)推動(dòng)了基于Spring Boot的微服務(wù)化架構(gòu)改造,對(duì)微服務(wù)架構(gòu)和并發(fā)架構(gòu)有非常深入的研究,以及豐富的實(shí)踐經(jīng)驗(yàn)。著有暢銷書《Spring Cloud Alibaba微服務(wù)原理與實(shí)戰(zhàn)》《Java并發(fā)編程深度解析與實(shí)戰(zhàn)》,電子工業(yè)出版社博文視點(diǎn)優(yōu)秀作者。關(guān)注公眾號(hào)“跟著Mic學(xué)架構(gòu)”獲取更多干貨。

圖書目錄

第1篇 Java核心知識(shí)點(diǎn) 1
第1章 Java基礎(chǔ)知識(shí) 2
1.1 數(shù)據(jù)類型 2
1.1.1 為什么要設(shè)計(jì)封裝類,Integer和int有什么區(qū)別 2
1.1.2 為什么“1000==1000”為false,“100==100”為true 3
1.1.3 new String("hello")之后,到底創(chuàng)建了幾個(gè)對(duì)象 6
1.1.4 String、StringBuffer、StringBuilder的區(qū)別是什么 8
1.2 Object對(duì)象 9
1.2.1 如何理解Java對(duì)象的創(chuàng)建過(guò)程 9
1.2.2 什么是深克隆和淺克隆 10
1.2.3 強(qiáng)引用、軟引用、弱引用、虛引用有什么區(qū)別 12
1.2.4 一個(gè)空的Object對(duì)象到底占多大內(nèi)存 14
1.2.5 為什么重寫equals()方法就一定要重寫hashCode()方法 15
1.3 其他特性 17
1.3.1 請(qǐng)對(duì)比一下Java和JavaScript的區(qū)別 17
1.3.2 什么是受檢異常和非受檢異常 18
1.3.3 fail-fast機(jī)制與fail-safe機(jī)制分別有什么作用 20
1.3.4 如何理解序列化和反序列化 21
1.3.5 什么是SPI,它有什么用 22
1.3.6 finally語(yǔ)句塊一定會(huì)執(zhí)行嗎 24
1.3.7 什么是內(nèi)存溢出,什么是內(nèi)存泄漏 25

第2章 并發(fā)編程與多線程 27
2.1 J.U.C和鎖 27
2.1.1 什么是AQS 27
2.1.2 如何理解AQS的實(shí)現(xiàn)原理 28
2.1.3 AQS為什么要使用雙向鏈表 29
2.1.4 什么是CAS 31
2.1.5 什么是樂(lè)觀鎖,什么是悲觀鎖 32
2.1.6 什么條件下會(huì)產(chǎn)生死鎖,如何避免死鎖 33
2.1.7 synchronized和Lock的區(qū)別是什么 35
2.1.8 什么是可重入鎖,它的作用是什么 37
2.1.9 ReentrantLock的實(shí)現(xiàn)原理是什么 38
2.1.10 ReentrantLock是如何實(shí)現(xiàn)鎖的公平性和非公平性的 39
2.1.11 說(shuō)說(shuō)你對(duì)行鎖、間隙鎖、臨鍵鎖的理解 40
2.1.12 如何理解Java中令人眼花繚亂的各種并發(fā)鎖 42
2.1.13 阻塞隊(duì)列被異步消費(fèi),怎么保持順序 51
2.1.14 基于數(shù)組的阻塞隊(duì)列ArrayBlockingQueue的實(shí)現(xiàn)原理是什么 52
2.2 多線程與線程池 53
2.2.1 Thread和Runnable的區(qū)別是什么 53
2.2.2 什么是守護(hù)線程,它有什么特點(diǎn) 54
2.2.3 BLOCKED和WAITING兩種線程狀態(tài)有什么區(qū)別 55
2.2.4 為什么啟動(dòng)線程不能直接調(diào)用run()方法,調(diào)用兩次start()方法會(huì)
有什么后果 56
2.2.5 談?wù)勀銓?duì)Java線程5種狀態(tài)流轉(zhuǎn)原理的理解 58
2.2.6 談?wù)勀銓?duì)線程池的理解 60
2.2.7 Java有哪些實(shí)現(xiàn)線程池的方式 62
2.2.8 線程池是如何回收線程的 63
2.2.9 線程池是如何實(shí)現(xiàn)線程復(fù)用的 64
2.2.10 線程池如何知道一個(gè)線程的任務(wù)已經(jīng)執(zhí)行完成 65
2.2.11 當(dāng)任務(wù)數(shù)超過(guò)線程池的核心線程數(shù)時(shí),如何讓任務(wù)不進(jìn)入隊(duì)列 66
2.2.12 什么是偽共享,如何避免偽共享 67
2.2.13 wait和notify為什么要寫在synchronized代碼塊中 69
2.2.14 wait和sleep是否會(huì)觸發(fā)鎖的釋放及CPU資源的釋放 70
2.2.15 volatile關(guān)鍵字有什么用,它的實(shí)現(xiàn)原理是什么 71
2.2.16 說(shuō)說(shuō)你對(duì)CompletableFuture的理解 73
2.2.17 談?wù)勀銓?duì)ThreadLocal實(shí)現(xiàn)原理的理解 75
2.2.18 CountDownLatch和CyclicBarrier有什么區(qū)別 77
2.2.19 談?wù)勀銓?duì)Happens-Before的理解 79
2.3 線程安全 81
2.3.1 談?wù)勀銓?duì)線程安全的理解 81
2.3.2 Java保證線程安全的方式有哪些 82
2.3.3 如何安全中斷一個(gè)正在運(yùn)行的線程 83
2.3.4 SimpleDateFormat是線程安全的嗎 84
2.3.5 并發(fā)場(chǎng)景中,ThreadLocal會(huì)造成內(nèi)存泄漏嗎 85

第3章 集合原理 89
3.1 ArrayList 89
3.1.1 ArrayList是如何實(shí)現(xiàn)自動(dòng)擴(kuò)容的 89
3.1.2 談?wù)凙rrayList、Vector和LinkedList的存儲(chǔ)性能及特性 91
3.2 HashMap 92
3.2.1 單線程下的HashMap工作原理是什么 92
3.2.2 HashMap是如何解決Hash沖突的 97
3.2.3 HashMap什么時(shí)候擴(kuò)容,如何自動(dòng)擴(kuò)容 99
3.2.4 為什么HashMap會(huì)產(chǎn)生死循環(huán) 101
3.2.5 HashMap和TreeMap的區(qū)別是什么 104
3.2.6 為什么ConcurrentHashMap的key不允許為null 106
3.2.7 談?wù)勀銓?duì)ConcurrentHashMap底層實(shí)現(xiàn)原理的理解 108
3.2.8 ConcurrentHashMap是如何保證線程安全的 111

第4章 JVM原理 115
4.1 JVM介紹 115
4.1.1 如何理解Java虛擬機(jī),它的結(jié)構(gòu)是如何設(shè)計(jì)的 115
4.1.2 什么是雙親委派機(jī)制 119
4.2 內(nèi)存管理 121
4.2.1 JVM如何判斷一個(gè)對(duì)象可以被回收 121
4.2.2 談?wù)勀銓?duì)JVM中主要GC算法的理解 123
4.2.3 JVM分代年齡為什么是15次 125
4.2.4 JVM為什么使用元空間替換永久代 126

第5章 I/O與網(wǎng)絡(luò)編程 129
5.1 I/O基礎(chǔ) 129
5.1.1 Java有幾種文件拷貝方式,哪一種效率 129
5.1.2 I/O和NIO的區(qū)別是什么 130
5.1.3 談?wù)勀銓?duì)I/O多路復(fù)用機(jī)制的理解 131
5.2 網(wǎng)絡(luò)編程 135
5.2.1 什么是網(wǎng)絡(luò)四元組 135
5.2.2 TCP協(xié)議為什么要設(shè)計(jì)3次握手 137
5.2.3 Cookie和Session有什么區(qū)別 138

第6章 設(shè)計(jì)模式 140
6.1 單例模式 140
6.1.1 在Java中實(shí)現(xiàn)單例模式有哪些方法 140
6.1.2 哪些情況下的單例對(duì)象可能會(huì)被破壞 143
6.1.3 在DCL單例寫法中,為什么主要做兩次檢查 147
6.1.4 哪些場(chǎng)景不適合使用單例模式 150
6.2 代理模式 151
6.2.1 什么是代理,為什么要用動(dòng)態(tài)代理 151
6.2.2 JDK動(dòng)態(tài)代理為什么只能代理有接口的類 153
6.3 責(zé)任鏈模式 155


第2篇 框架源碼與原理 159
第7章 Spring全家桶 160
7.1 Spring框架 160
7.1.1 為什么要使用Spring框架 160
7.1.2 Spring IoC的工作流程是怎樣的 162
7.1.3 Spring中BeanFactory和FactoryBean的區(qū)別是什么 164
7.1.4 談?wù)勀銓?duì)Spring Bean的理解 165
7.1.5 Spring Bean的定義包含哪些內(nèi)容 169
7.1.6 Spring中Bean的作用域有哪些 172
7.1.7 如何敘述Spring Bean的生命周期 174
7.1.8 Spring中的Bean是線程安全的嗎 178
7.1.9 Spring有幾種依賴注入的方式 179
7.1.10 Spring如何解決循環(huán)依賴問(wèn)題 180
7.1.11 Spring中用到了哪些設(shè)計(jì)模式 183
7.1.12 Spring中的事務(wù)傳播行為有哪些 184
7.1.13 導(dǎo)致Spring事務(wù)失效的原因有哪些 185
7.1.14 Spring中實(shí)現(xiàn)異步調(diào)用的方式有哪些 187
7.1.15 談?wù)勀銓?duì)Spring AOP原理的理解 190
7.2 Spring MVC框架 193
7.2.1 說(shuō)說(shuō)你對(duì)Spring MVC的理解 193
7.2.2 簡(jiǎn)述Spring MVC的核心執(zhí)行流程 194
7.2.3 談?wù)勀銓?duì)Spring MVC中9大組件的理解 197
7.2.4 Spring中@Autowired和@Resource的區(qū)別 202
7.3 Spring Boot框架 207
7.3.1 為什么越來(lái)越多的人選擇Spring Boot 207
7.3.2 如何理解Spring Boot約定優(yōu)于配置 210
7.3.3 Spring Boot自動(dòng)裝配機(jī)制的實(shí)現(xiàn)原理是什么 211
7.3.4 如何理解Spring Boot中的Starter 213
7.4 Spring Cloud框架 214
7.4.1 談?wù)勀銓?duì)Spring Cloud的理解 214
7.4.2 談?wù)凟ureka Server數(shù)據(jù)同步原理 215
7.4.3 簡(jiǎn)述Nacos配置更新的工作流程 216

第8章 互聯(lián)網(wǎng)常用框架 218
8.1 Dubbo框架 218
8.1.1 簡(jiǎn)述Dubbo和Spring Cloud的優(yōu)缺點(diǎn)對(duì)比 218
8.1.2 Dubbo的服務(wù)請(qǐng)求失敗怎么處理 220
8.1.3 Dubbo是如何動(dòng)態(tài)感知服務(wù)下線的 221
8.2 Netty框架 223
8.2.1 談?wù)勀銓?duì)Netty中Reactor模式的理解 223
8.2.2 Netty是如何實(shí)現(xiàn)零拷貝的 225
8.2.3 為什么Netty線程池默認(rèn)大小為CPU核數(shù)的兩倍 228
8.2.4 談?wù)勀銓?duì)Netty中Pipeline工作原理的理解 229
8.3 MyBatis框架 231
8.3.1 談?wù)勀銓?duì)MyBatis緩存機(jī)制的理解 231
8.3.2 MyBatis中#號(hào)和$號(hào)的區(qū)別是什么 233
8.3.3 MyBatis是如何進(jìn)行分頁(yè)的 234

第3篇 分布式與中間件 237
第9章 分布式與微服務(wù) 238
9.1 分布式通信 238
9.1.1 談?wù)勀銓?duì)RPC框架的理解 238
9.1.2 HTTP和RPC有什么區(qū)別 240
9.2 微服務(wù)協(xié)調(diào)組件 242
9.2.1 分布式和微服務(wù)的區(qū)別是什么 242
9.2.2 談?wù)勀銓?duì)負(fù)載均衡的理解 243
9.2.3 談?wù)勀銓?duì)ZooKeeper的理解 248
9.2.4 簡(jiǎn)述ZooKeeper中的Watch機(jī)制的原理 250
9.2.5 ZooKeeper如何實(shí)現(xiàn)Leader選舉 251
9.3 分布式鎖 254
9.3.1 談?wù)勀銓?duì)分布式鎖的理解和實(shí)現(xiàn) 254
9.3.2 什么是冪等,如何解決冪等性問(wèn)題 255
9.3.3 談?wù)勀銓?duì)一致性Hash算法的理解 256
9.3.4 常用的分布式ID設(shè)計(jì)方案有哪些 260
9.3.5 實(shí)現(xiàn)分布式鎖,ZooKeeper和Redis哪個(gè)更好 261
9.4 分布式事務(wù) 263
9.4.1 如何區(qū)分Spring中的事務(wù)和分布式事務(wù) 263
9.4.2 談?wù)劮植际绞聞?wù)的解決方案 264
9.4.3 談?wù)勀銓?duì)Seata的理解 265
9.4.4 如何解決TCC中的懸掛問(wèn)題 269
9.5 限流和鑒權(quán) 271
9.5.1 常用的限流算法有哪些 271
9.5.2 簡(jiǎn)述雪花算法的實(shí)現(xiàn)原理 273
9.5.3 簡(jiǎn)述Sentinel組件里的滑動(dòng)窗口算法 278
9.5.4 談?wù)勀銓?duì)OAuth的理解 279
9.6 DevOps與云原生 283
9.6.1 談?wù)勀銓?duì)Swagger工作流程的理解 283
9.6.2 什么是云原生 286
9.6.3 什么是服務(wù)網(wǎng)格 287
9.6.4 談?wù)勀銓?duì)IaaS、PaaS、SaaS的理解 290

第10章 MySQL數(shù)據(jù)庫(kù) 293
10.1 存儲(chǔ)引擎 293
10.1.1 存儲(chǔ)MD5值應(yīng)該用VARCHAR還是CHAR 293
10.1.2 能不能用MySQL的VARCHAR來(lái)存儲(chǔ)一本小說(shuō) 294
10.1.3 導(dǎo)致索引失效的原因有哪些 296
10.1.4 什么是聚集索引和非聚集索引 297
10.1.5 談?wù)勀銓?duì)B樹(shù)和B+樹(shù)的理解 298
10.1.6 為什么MySQL的索引結(jié)構(gòu)要采用B+樹(shù) 302
10.1.7 MySQL索引的優(yōu)點(diǎn)和缺點(diǎn)是什么 303
10.1.8 為什么SQL語(yǔ)句命中索引比不命中索引要快 304

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)