-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Offer來了:Java面試核心知識點精講(原理篇)

( 簡體 字)
作者:王磊類別:1. -> 程式設計 -> 面試指南
   2. -> 程式設計 -> JAVA -> Java
譯者:
出版社:電子工業出版社Offer來了:Java面試核心知識點精講(原理篇) 3dWoo書號: 52023
詢問書籍請說出此書號!

缺書
NT售價: 445

出版日:11/1/2019
頁數:344
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121376184
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

本書是對Java程序員面試必備知識點的總結,詳細講解了JVM原理、多線程、數據結構和算法、分布式緩存、設計模式等內容,希望讀者能通過閱讀本書對Java的基礎原理有更深入、全面的理解。
面試官通常會在短短兩小時內對面試者的知識結構進行全面了解,面試者在回答問題時如果拖泥帶水且不能直擊問題的本質,則很難充分表現自己,最終影響面試結果。針對這種情況,本書在講解知識點時不拖泥帶水,力求精簡,詳細介紹了Java程序員面試時常被問及的核心知識點。

章節架構
本書共9章,各章所講內容如下。
第1章講解JVM原理,涉及JVM運行機制、JVM內存模型、常用垃圾回收算法和JVM類加載機制等內容。
第2章講解Java基礎知識,涉及集合、異常分類及處理、反射、注解、內部類、泛型和序列化等內容。
第3章講解Java并發編程知識,涉及Java多線程的工作原理及應用、Java線程池的工作原理及應用,以及鎖、進程調度算法等內容。
第4章講解數據結構知識,涉及棧、隊列、鏈表、散列表、二叉樹、紅黑樹、圖和位圖等內容。
第5章講解Java中的常用算法,涉及二分查找、冒泡排序、插入排序、快速排序、希爾排序、歸并排序、桶排序、基數排序等算法。
第6章講解網絡與負載均衡原理,涉及TCP/IP、HTTP、常用負載均衡算法和LVS原理等內容。
第7章講解數據庫及分布式事務原理,涉及數據庫存儲引擎、數據庫并發操作和鎖、數據庫分布式事務等內容。
第8章講解分布式緩存的原理及應用,涉及分布式緩存介紹、Ehcache原理及應用、Redis原理及應用、分布式緩存設計的核心問題等內容。
第9章講解設計模式,涉及常見的23種經典設計模式。

閱讀建議
本書目錄細致,建議讀者在閱讀本書之后以目錄作為參考溫故而知新,達到融會貫通的目的。建議讀者花3周進行細讀,詳細理解書中的知識點、代碼和架構圖;再花兩天進行復習,對著目錄回憶知識點,對想不起來的部分及時查漏補缺;在面試前再花3小時進行復習,以充分掌握本書知識點。這樣,讀者就能對書中每個知識點的廣度和深度理解更充分,在面試時胸有成竹、百戰不殆。

致謝
感謝電子工業出版社博文視點的張國霞編輯,她的鼓勵和引導對本書的寫作和出版有很大的幫助;感謝王曉棟,是他關注并向編輯提出了本書的出版價值。
寫技術書籍是很耗費精力的,筆者常常因為一行代碼或者一張圖能否準確表達含義而思考再三。出于工作的原因,筆者只能在晚上和周末寫作,寫作難度很大,所以十分感謝妻子張艷嬌女士,沒有她的鼓勵和支持,本書很難順利出版;也十分感謝家人和朋友在工作和生活中對筆者的關心和幫助。

王磊
內容簡介:

本書是對Java程序員面試必備知識點的總結,詳細講解了JVM原理、多線程、數據結構和算法、分布式緩存、設計模式等面試必備知識點,在講解時不拖泥帶水,力求精簡。本書總計9章,第1章講解JVM原理,涉及JVM運行機制、JVM內存模型、常用垃圾回收算法和JVM類加載機制等內容;第2章講解Java基礎知識,涉及集合、異常分類及處理、反射、注解、內部類、泛型和序列化等內容;第3章講解Java并發編程知識,涉及Java多線程的工作原理及應用、Java線程池的工作原理及應用,以及鎖、進程調度算法等內容;第4章講解數據結構知識,涉及棧、隊列、鏈表、散列表、二叉樹、紅黑樹、圖和位圖等內容;第5章講解Java中的常用算法,涉及二分查找、冒泡排序、插入排序、快速排序、希爾排序、歸并排序、桶排序、基數排序等算法;第6章講解網絡與負載均衡原理,涉及TCP/IP、HTTP、常用負載均衡算法和LVS原理等內容;第7章講解數據庫及分布式事務原理,涉及數據庫存儲引擎、數據庫并發操作和鎖、數據庫分布式事務等內容;第8章講解分布式緩存的原理及應用,涉及分布式緩存介紹、Ehcache原理及應用、Redis原理及應用、分布式緩存設計的核心問題等內容;第9章講解設計模式,涉及常見的23種經典設計模式。本書可作為Java程序員的技術面試參考用書,也可作為Java程序員、技術經理和架構師的日常技術參考用書。
目錄:

第1章 JVM 1
1.1 JVM的運行機制 1
1.2 多線程 2
1.3 JVM的內存區域 3
1.3.1 程序計數器:線程私有,無內存溢出問題 4
1.3.2 虛擬機棧:線程私有,描述Java方法的執行過程 4
1.3.3 本地方法區:線程私有 5
1.3.4 堆:也叫作運行時數據區,線程共享 5
1.3.5 方法區:線程共享 5
1.4 JVM的運行時內存 6
1.4.1 新生代:Eden區、ServivorTo區和ServivorFrom區 7
1.4.2 老年代 8
1.4.3 永久代 8
1.5 垃圾回收與算法 9
1.5.1 如何確定垃圾 9
1.5.2 Java中常用的垃圾回收算法 10
1.6 Java中的4種引用類型 13
1.7 分代收集算法和分區收集算法 14
1.7.1 分代收集算法 14
1.7.2 分區收集算法 15
1.8 垃圾收集器 15
1.8.1 Serial垃圾收集器:單線程,復制算法 16
1.8.2 ParNew垃圾收集器:多線程,復制算法 16
1.8.3 Parallel Scavenge垃圾收集器:多線程,復制算法 16
1.8.4 Serial Old垃圾收集器:單線程,標記整理算法 16
1.8.5 Parallel Old垃圾收集器:多線程,標記整理算法 17
1.8.6 CMS垃圾收集器 18
1.8.7 G1垃圾收集器 18
1.9 Java網絡編程模型 19
1.9.1 阻塞I/O模型 19
1.9.2 非阻塞I/O模型 19
1.9.3 多路復用I/O模型 20
1.9.4 信號驅動I/O模型 21
1.9.5 異步I/O模型 21
1.9.6 Java I/O 21
1.9.7 Java NIO 22
1.10 JVM的類加載機制 28
1.10.1 JVM的類加載階段 28
1.10.2 類加載器 29
1.10.3 雙親委派機制 30
1.10.4 OSGI 32

第2章 Java基礎 33
2.1 集合 33
2.1.1 List:可重復 34
2.1.2 Queue 34
2.1.3 Set:不可重復 35
2.1.4 Map 36
2.2 異常分類及處理 39
2.2.1 異常的概念 39
2.2.2 異常分類 40
2.2.3 異常處理方式:拋出異常、使用try catch捕獲并處理異常 41
2.3 反射機制 42
2.3.1 動態語言的概念 42
2.3.2 反射機制的概念 43
2.3.3 反射的應用 43
2.3.4 Java的反射API 43
2.3.5 反射的步驟 43
2.3.6 創建對象的兩種方式 45
2.3.7 Method的invoke方法 45
2.4 注解 46
2.4.1 注解的概念 46
2.4.2 標準元注解:@Target、@Retention、@Documented、@Inherited 46
2.4.3 注解處理器 47
2.5 內部類 49
2.5.1 靜態內部類 49
2.5.2 成員內部類 50
2.5.3 局部內部類 51
2.5.4 匿名內部類 51
2.6 泛型 52
2.6.1 泛型標記和泛型限定:E、T、K、V、N、? 53
2.6.2 泛型方法 53
2.6.3 泛型類 54
2.6.4 泛型接口 55
2.6.5 類型擦除 56
2.7 序列化 56
2.7.1 Java序列化API的使用 57
2.7.2 序列化和反序列化 58

第3章 Java并發編程 59
3.1 Java線程的創建方式 59
3.1.1 繼承Thread類 59
3.1.2 實現Runnable接口 60
3.1.3 通過ExecutorService和Callable<Class>實現有返回值的線程 61
3.1.4 基于線程池 62
3.2 線程池的工作原理 62
3.2.1 線程復用 63
3.2.2 線程池的核心組件和核心類 63
3.2.3 Java線程池的工作流程 65
3.2.4 線程池的拒絕策略 66
3.3 5種常用的線程池 68
3.3.1 newCachedThreadPool 68
3.3.2 newFixedThreadPool 68
3.3.3 newScheduledThreadPool 69
3.3.4 newSingleThreadExecutor 69
3.3.5 newWorkStealingPool 69
3.4 線程的生命周期 70
3.4.1 新建狀態:New 71
3.4.2 就緒狀態:Runnable 71
3.4.3 運行狀態:Running 71
3.4.4 阻塞狀態:Blocked 71
3.4.5 線程死亡:Dead 72
3.5 線程的基本方法 72
3.5.1 線程等待:wait方法 72
3.5.2 線程睡眠:sleep方法 73
3.5.3 線程讓步:yield方法 73
3.5.4 線程中斷:interrupt方法 73
3.5.5 線程加入:join方法 74
3.5.6 線程喚醒:notify方法 75
3.5.7 后臺守護線程:setDaemon方法 75
3.5.8 sleep方法與wait方法的區別 76
3.5.9 start方法與run方法的區別 76
3.5.10 終止線程的4種方式 77
3.6 Java中的鎖 79
3.6.1 樂觀鎖 79
3.6.2 悲觀鎖 79
3.6.3 自旋鎖 80
3.6.4 synchronized 81
3.6.5 ReentrantLock 89
3.6.6 synchronized和ReentrantLock的比較 94
3.6.7 Semaphore 95
3.6.8 AtomicInteger 96
3.6.9 可重入鎖 97
3.6.10 公平鎖與非公平鎖 97
3.6.11 讀寫鎖:ReadWriteLock 98
3.6.12 共享鎖和獨占鎖 98
3.6.13 重量級鎖和輕量級鎖 99
3.6.14 偏向鎖 99
3.6.15 分段鎖 100
3.6.16 同步鎖與死鎖 100
3.6.17 如何進行鎖優化 100
3.7 線程上下文切換 101
3.7.1 上下文切換 102
3.7.2 引起線程上下文切換的原因 102
3.8 Java阻塞隊列 103
3.8.1 阻塞隊列的主要操作 104
3.8.2 Java中的阻塞隊列實現 108
3.9 Java并發關鍵字 113
3.9.1 CountDownLatch 113
3.9.2 CyclicBarrier 114
3.9.3 Semaphore 116
3.9.4 volatile關鍵字的作用 117
3.10 多線程如何共享數據 119
3.10.1 將數據抽象成一個類,并將對這個數據的操作封裝在類的方法中 119
3.10.2 將Runnable對象作為一個類的內部類,將共享數據作為這個類的成員變量 121
3.11 ConcurrentHashMap并發 122
3.11.1 減小鎖粒度 122
3.11.2 ConcurrentHashMap的實現 123
3.12 Java中的線程調度 123
3.12.1 搶占式調度 123
3.12.2 協同式調度 124
3.12.3 Java線程調度的實現:搶占式 124
3.12.4 線程讓出CPU的情況 125
3.13 進程調度算法 125
3.13.1 優先調度算法 125
3.13.2 高優先權優先調度算法 126
3.13.3 時間片的輪轉調度算法 127
3.14 什么是CAS 128
3.14.1 CAS的概念:比較并交換 128
3.14.2 CAS的特性:樂觀鎖 128
3.14.3 CAS自旋等待 129
3.15 ABA問題 129
3.16 什么是AQS 130
3.16.1 AQS的原理 130
3.16.2 state:狀態 131
3.16.3 AQS共享資源的方式:獨占式和共享式 131

第4章 數據結構 133
4.1 棧及其Java實現 133
4.2 隊列及其Java實現 136
4.3 鏈表 138
4.3.1 鏈表的特點 139
4.3.2 單向鏈表的操作及其Java實現 139
4.3.3 雙向鏈表及其Java實現 143
4.3.4 循環鏈表 146
4.4 散列表 146
4.4.1 常用的構造散列函數 147
4.4.2 Hash的應用 148
4.5 二叉排序樹 148
4.5.1 插入操作 149
4.5.2 刪除操作 149
4.5.3 查找操作 151
4.5.4 用Java實現二叉排序樹 151
4.6 紅黑樹 155
4.6.1 紅黑樹的特性 156
4.6.2 紅黑樹的左旋 156
4.6.3 紅黑樹的右旋 157
4.6.4 紅黑樹的添加 157
4.6.5 紅黑樹的刪除 158
4.7 圖 159
4.7.1 無向圖和有向圖 159
4.7.2 圖的存儲結構:鄰接矩陣 160
4.7.3 圖的存儲結構:鄰接表 161
4.7.4 圖的遍歷 162
4.8 位圖 164
4.8.1 位圖的數據結構 164
4.8.2 位圖的Java實現 165

第5章 Java中的常用算法 167
5.1 二分查找算法 167
5.1.1 二分查找算法的原理 168
5.1.2 二分查找算法的Java實現 168
5.2 冒泡排序算法 169
5.2.1 冒泡排序算法的原理 169
5.2.2 冒泡排序算法的Java實現 170
5.3 插入排序算法 171
5.3.1 插入排序算法的原理 171
5.3.2 插入排序算法的Java實現 172
5.4 快速排序算法 173
5.4.1 快速排序算法的原理 173
5.4.2 快速排序算法的Java實現 174
5.5 希爾排序算法 175
5.5.1 希爾排序算法的原理 176
5.5.2 希爾排序算法的Java實現 177
5.6 歸并排序算法 178
5.6.1 歸并排序算法的原理 178
5.6.2 歸并排序算法的Java實現 178
5.7 桶排序算法 180
5.7.1 桶排序算法的原理 180
5.7.2 桶排序算法的Java實現 181
5.8 基數排序算法 182
5.8.1 基數排序算法的原理 182
5.8.2 基數排序算法的Java實現 183
5.9 其他算法 184
5.9.1 剪枝算法 184
5.9.2 回溯算法 186
5.9.3 最短路徑算法 186

第6章 網絡與負載均衡 188
6.1 網絡 188
6.1.1 OSI七層網絡模型 188
6.1.2 TCP/IP四層網絡模型 189
6.1.3 TCP三次握手/四次揮手 190
6.1.4 HTTP的原理 195
6.1.5 CDN的原理 199
6.2 負載均衡 201
6.2.1 四層負載均衡與七層負載均衡的對比 201
6.2.2 負載均衡算法 203
6.2.3 LVS的原理及應用 205
6.2.4 Nginx反向代理與負載均衡 211

第7章 數據庫及分布式事務 214
7.1 數據庫的基本概念及原則 214
7.1.1 存儲引擎 214
7.1.2 創建索引的原則 216
7.1.3 數據庫三范式 217
7.1.4 數據庫事務 218
7.1.5 存儲過程 219
7.1.6 觸發器 219
7.2 數據庫的并發操作和鎖 220
7.2.1 數據庫的并發策略 220
7.2.2 數據庫鎖 220
7.2.3 數據庫分表 223
7.3 數據庫分布式事務 223
7.3.1 CAP 223
7.3.2 兩階段提交協議 224
7.3.3 三階段提交協議 225
7.3.4 分布式事務 227

第8章 分布式緩存的原理及應用 230
8.1 分布式緩存介紹 230
8.2 Ehcache的原理及應用 231
8.2.1 Ehcache的原理 231
8.2.2 Ehcache的應用 234
8.3 Redis的原理及應用 235
8.3.1 Redis的原理 235
8.3.2 Redis的應用 249
8.4 分布式緩存設計的核心問題 252
8.4.1 緩存預熱 253
8.4.2 緩存更新 253
8.4.3 緩存淘汰策略 253
8.4.4 緩存雪崩 253
8.4.5 緩存穿透 254
8.4.6 緩存降級 255
第9章 設計模式 256
9.1 設計模式簡介 256
9.2 工廠模式的概念及Java實現 259
9.3 抽象工廠模式的概念及Java實現 261
9.4 單例模式的概念及Java實現 265
9.5 建造者模式的概念及Java實現 268
9.6 原型模式的概念及Java實現 271
9.7 適配器模式的概念及Java實現 274
9.8 裝飾者模式的概念及Java實現 280
9.9 代理模式的概念及Java實現 282
9.10 外觀模式的概念及Java實現 284
9.11 橋接模式的概念及Java實現 288
9.12 組合模式的概念及Java實現 291
9.13 享元模式的概念及Java實現 293
9.14 策略模式的概念及Java實現 296
9.15 模板方法模式的概念及Java實現 299
9.16 觀察者模式的概念及Java實現 302
9.17 迭代器模式的概念及Java實現 305
9.18 責任鏈模式的概念及Java實現 308
9.19 命令模式的概念及Java實現 312
9.20 備忘錄模式的概念及Java實現 315
9.21 狀態模式的概念及Java實現 317
9.22 訪問者模式的概念及Java實現 320
9.23 中介者模式的概念及Java實現 324
9.24 解釋器模式的概念及Java實現 328
序: