Offer 來了:Java 面試核心知識點精講, 2/e

王磊

  • 出版商: 電子工業
  • 出版日期: 2022-06-01
  • 售價: $954
  • 貴賓價: 9.5$906
  • 語言: 簡體中文
  • 頁數: 636
  • ISBN: 7121435950
  • ISBN-13: 9787121435959
  • 相關分類: 面試技巧
  • 立即出貨 (庫存 < 4)

買這商品的人也買了...

商品描述

本書講解Java面試中常被問及的核心知識點,涉及Java基礎、Java並發編程、JVM、Java高並發網絡編程、Spring基礎、Netflix的原理及應用、Spring Cloud Alibaba的原理及應用、數據結構、Java中常用算法的原理及其Java實現、關系數據庫及分佈式事務、分佈式緩存的原理及應用、ZooKeeper的原理及應用、Kafka的原理及應用、Elasticsearch的原理及應用、設計模式的概念及其Java實現。本書內容全面、細致,既可幫助讀者迅速查找Java知識點,也可幫助讀者完善其Java知識體系;不但可以作為Java面試知識速通手冊,也可以作為Java程序員的案頭手冊。

目錄大綱

-《圖解Spark:大數據快速分析實戰》

1章 Java基礎 1《《《

1.1 集合 2

1.1.1 List:可重複 2

1.1.2 Queue 3

1.1.3 Set:不可重複 4

1.1.4 Map 5

1.2 異常的分類及處理 8

1.2.1 異常的概念 8

1.2.2 異常的分類 9

1.2.3 處理異常的方式 10

1.3 反機制 12

1.3.1 動態語言的概念 12

1.3.2 反機制的概念 12

1.3.3 反的應用 12

1.3.4 Java的反API 13

1.3.5 反的過程 13

1.3.6 創建對象的兩種方式 14

1.3.7 Method的invoke方法 15

1.4 註解 16

1.4.1 註解的概念 16

1.4.2 標準元註解:@Target、@Retention、@Documented、@Inherited 16

1.4.3 註解處理器 17

1.5 內部類 19

1.5.1 靜態內部類 19

1.5.2 成員內部類 20

1.5.3 局部內部類 21

1.5.4 匿名內部類 21

1.6 泛型 22

1.6.1 泛型標記和泛型限定:E、T、K、V、N、? 23

1.6.2 泛型方法 24

1.6.3 泛型類 25

1.6.4 泛型接口 25

1.6.5 類型擦除 26

1.7 序列化 27

1.7.1 Java序列化API的應用 27

1.7.2 Kryo序列化 29

1.7.3 Avro序列化 31

1.7.4 ProtoBuf序列化 33

1.8 Java I/O 35

1.8.1 輸入流和輸出流 35

1.8.2 字節流和字符流 36

1.8.3 節點流和處理流 42

1.8.4 內存映文件技術 43

 

》》》2章 Java並發編程 46《《《

2.1 常見的Java線程的創建方式 47

2.1.1 繼承Thread類 47

2.1.2 實現Runnable接口 48

2.1.3 通過EecutorService和Callable接口實現有返回值的線程 49

2.1.4 基於線程池 50

2.2 Java線程池的原理 50

2.2.1 線程復用 51

2.2.2 線程池的核心組件和核心類 51

2.2.3 Java線程池的工作流程 52

2.2.4 線程池的拒策略 53

2.3 5種常用的線程池 56

2.3.1 newCachedThreadPool 56

2.3.2 newFiedThreadPool 57

2.3.3 newScheduledThreadPool 57

2.3.4 newSingleThreadEecutor 58

2.3.5 newWorkStealingPool 58

2.4 線程的生命週期 58

2.4.1 新建狀態:New 60

2.4.2 就緒狀態:Runnable 60

2.4.3 阻塞狀態:Blocked 60

2.4.4 等待狀態:Waiting 61

2.4.5 時等待狀態:Timed_Waiting 61

2.4.6 線程終止:Terminated 61

2.5 線程的基本方法 61

2.5.1 線程等待:wait方法 62

2.5.2 線程睡眠:sleep方法 62

2.5.3 線程讓步:yield方法 62

2.5.4 線程中斷:interrupt方法 62

2.5.5 線程加入:join方法 63

2.5.6 線程喚醒:tify方法 64

2.5.7 後台守護線程:setDaemon方法 64

2.5.8 sleep方法和wait方法的區別 65

2.5.9 start方法和run方法的區別 65

2.5.10 終止線程的4種方式 65

2.6 Java中的鎖 67

2.6.1 樂觀鎖 68

2.6.2 悲觀鎖 68

2.6.3 自旋鎖 68

2.6.4 synchronized 69

2.6.5 ReentrantLock 77

2.6.6 synchronized與ReentrantLock的對比 83

2.6.7 Semaphore 83

2.6.8 AtomicInteger 84

2.6.9 可重入鎖 85

2.6.10 公平鎖和非公平鎖 85

2.6.11 讀寫鎖 86

2.6.12 共享鎖和獨占鎖 86

2.6.13 重量級鎖和輕量級鎖 87

2.6.14 偏向鎖 87

2.6.15 分段鎖 88

2.6.16 同步鎖和死鎖 88

2.6.17 如何進行鎖優化 88

2.7 線程上下文切換 90

2.7.1 線程上下文切換的流程 90

2.7.2 導致線程上下文切換的原因 91

2.8 Java中的阻塞隊列 91

2.8.1 阻塞隊列的主要作 92

2.8.2 Java中阻塞隊列的實現 96

2.9 Java並發關鍵字 101

2.9.1 CountDownLatch 101

2.9.2 CyclicBarrier 103

2.9.3 Semaphore 104

2.9.4 volatile的作用 106

2.10 多線程如何共享數據 108

2.10.1 將數據抽象成一個類,將對這個數據的作封裝在類的方法中 108

2.10.2 將Runnable對像作為一個類的內部類,將共享數據作為其成員變量 109

2.11 Fork/Join並發框架 111

2.11.1 工作竊取算法 111

2.11.2 Fork/Join框架的應用 112

2.11.3 Fork/Join的核心組件 116

2.11.4 Fork/Join的任務調度流程 117

2.12 Java中的線程調度 117

2.12.1 搶占式調度 117

2.12.2 協同式調度 118

2.12.3 Java線程調度的實現:搶占式 119

2.12.4 線程讓出CPU的情況 119

2.13 進程調度算法 119

2.13.1 優先調度算法 119

2.13.2 高優先權優先調度算法 120

2.13.3 時間片的輪轉調度算法 121

2.14 CAS 122

2.14.1 CAS的特性:樂觀鎖 123

2.14.2 CAS自旋等待 123

2.15 ABA問題 124

2.16 AQS 124

2.16.1 AQS的原理 125

2.16.2 state:狀態 125

2.16.3 AQS共享資源的方式:獨占式和共享式 126

2.17 Java 8中的流 127

2.17.1 並行流和串行流的原理 128

2.17.2 流的常用函數 130

2.17.3 流的創建方式 131

2.17.4 流和集合的區別 132

 

》》》3章 JVM 133《《《

3.1 JVM結構規範(Java SE 8) 134

3.2 多線程 135

3.3 HotSpot JVM內存模型 136

3.3.1 程序計數器:線程私有,無內存溢出問題 137

3.3.2 Java虛擬機棧:線程私有,描述Java方法的執行過程 137

3.3.3 本地方法棧:線程私有 138

3.3.4 Java堆:線程共享 139

3.3.5 元空間:方法區在HotSpot JVM中的實現,線程共享 139

3.3.6 直接內存 139

3.4 HotSpot JVM堆 140

3.4.1 新生代:Eden區、SurvivorTo區和SurvivorFrom區 140

3.4.2 老年代 141

3.5 垃圾回收的原理與算法 142

3.5.1 如何確定垃圾 142

3.5.2 如何回收垃圾 143

3.6 Java中的4種引用類型 147

3.7 分代回收算法和分區回收算法 148

3.7.1 分代回收算法 148

3.7.2 分區回收算法 148

3.8 垃圾回收器 149

3.8.1 Serial垃圾回收器:單線程,複製算法 150

3.8.2 ParNew垃圾回收器:多線程,複製算法 150

3.8.3 Parallel Scavenge垃圾回收器:多線程,複製算法 150

3.8.4 Serial Old垃圾回收器:單線程,標記整理算法 150

3.8.5 Parallel Old垃圾回收器:多線程,標記整理算法 151

3.8.6 CMS垃圾回收器 152

3.8.7 G1垃圾回收器 152

3.9 JVM的參數配置 153

3.9.1 JVM參數設置入門案例 153

3.9.2 JVM參數設置實戰 154

3.10 JVM的類加載機制 156

3.10.1 JVM的類加載階段 156

3.10.2 類加載器 158

3.10.3 雙親委派機制 159

3.10.4 OSGI 160

3.11 JVM的性能監控與分析工具 161

3.11.1 jps 161

3.11.2 jinfo 162

3.11.3 jstat 162

3.11.4 jstack 163

3.11.5 jmap 164

3.11.6 GC日誌分析 166

 

》》》4章 Java高並發網絡編程 168《《《

4.1 網絡 169

4.1.1 OSI七層網絡模型 169

4.1.2 TCP/IP層網絡模型 170

4.1.3 TCP三次握手/次揮手 171

4.1.4 HTTP的原理 176

4.1.5 CDN的原理 180

4.2 負載均衡 182

4.2.1 層負載均衡與七層負載均衡的對比 182

4.2.2 負載均衡算法 184