幫助中心 | 我的帳號 | 關於我們

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

  • 作者:編者:王磊
  • 出版社:電子工業
  • ISBN:9787121376184
  • 出版日期:2019/11/01
  • 裝幀:平裝
  • 頁數:330
人民幣:RMB 89 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書是對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  JVM的運行機制
  1.2  多線程
  1.3  JVM的內存區域
    1.3.1  程序計數器:線程私有,無內存溢出問題
    1.3.2  虛擬機棧:線程私有,描述Java方法的執行過程
    1.3.3  本地方法區:線程私有
    1.3.4  堆:也叫作運行時數據區,線程共享
    1.3.5  方法區:線程共享
  1.4  JVM的運行時內存
    1.4.1  新生代:Eden區、ServivorTo區和ServivorFrom區
    1.4.2  老年代
    1.4.3  永久代
  1.5  垃圾回收與演算法
    1.5.1  如何確定垃圾
    1.5.2  Java中常用的垃圾回收演算法
  1.6  Java中的4種引用類型
  1.7  分代收集演算法和分區收集演算法
    1.7.1  分代收集演算法
    1.7.2  分區收集演算法
  1.8  垃圾收集器
    1.8.1  Serial垃圾收集器:單線程,複製演算法
    1.8.2  ParNew垃圾收集器:多線程,複製演算法
    1.8.3  Parallel Scavenge垃圾收集器:多線程,複製演算法
    1.8.4  Serial Old垃圾收集器:單線程,標記整理演算法
    1.8.5  Parallel Old垃圾收集器:多線程,標記整理演算法
    1.8.6  CMS垃圾收集器
    1.8.7  G1垃圾收集器
  1.9  Java網路編程模型
    1.9.1  阻塞I/O模型
    1.9.2  非阻塞I/O模型
    1.9.3  多路復用I/O模型
    1.9.4  信號驅動I/O模型
    1.9.5  非同步I/O模型
    1.9.6  Java I/O
    1.9.7  Java NIO
  1.10  JVM的類載入機制
    1.10.1  JVM的類載入階段
    1.10.2  類載入器
    1.10.3  雙親委派機制
    1.10.4  OSGI
第2章  Java基礎
  2.1  集合
    2.1.1  List:可重複
    2.1.2  Queue
    2.1.3  Set:不可重複
    2.1.4  Map
  2.2  異常分類及處理
    2.2.1  異常的概念
    2.2.2  異常分類

    2.2.3  異常處理方式:拋出異常、使用try catch捕獲並處理異常
  2.3  反射機制
    2.3.1  動態語言的概念
    2.3.2  反射機制的概念
    2.3.3  反射的應用
    2.3.4  Java的反射API
    2.3.5  反射的步驟
    2.3.6  創建對象的兩種方式
    2.3.7  Method的invoke方法
  2.4  註解
    2.4.1  註解的概念
    2.4.2  標準元註解:@Target、@Retention、@Documented、@Inherited
    2.4.3  註解處理器
  2.5  內部類
    2.5.1  靜態內部類
    2.5.2  成員內部類
    2.5.3  局部內部類
    2.5.4  匿名內部類
  2.6  泛型
    2.6.1  泛型標記和泛型限定:E、T、K、V、N、?
    2.6.2  泛型方法
    2.6.3  泛型類
    2.6.4  泛型介面
    2.6.5  類型擦除
  2.7  序列化
    2.7.1  Java序列化API的使用
    2.7.2  序列化和反序列化
第3章  Java併發編程
  3.1  Java線程的創建方式
    3.1.1  繼承Thread類
    3.1.2  實現Runnable介面
    3.1.3  通過ExecutorService和Callable<Class>實現有返回值的線程
    3.1.4  基於線程池
  3.2  線程池的工作原理
    3.2.1  線程復用
    3.2.2  線程池的核心組件和核心類
    3.2.3  Java線程池的工作流程
    3.2.4  線程池的拒絕策略
  3.3  5種常用的線程池
    3.3.1  newCachedThreadPool
    3.3.2  newFixedThreadPool
    3.3.3  newScheduledThreadPool
    3.3.4  newSingleThreadExecutor
    3.3.5  newWorkStealingPool
  3.4  線程的生命周期
    3.4.1  新建狀態:New
    3.4.2  就緒狀態:Runnable
    3.4.3  運行狀態:Running
    3.4.4  阻塞狀態:Blocked
    3.4.5  線程死亡:Dead

  3.5  線程的基本方法
    3.5.1  線程等待:wait方法
    3.5.2  線程睡眠:sleep方法
    3.5.3  線程讓步:yield方法
    3.5.4  線程中斷:interrupt方法
    3.5.5  線程加入:join方法
    3.5.6  線程喚醒:notify方法
    3.5.7  後台守護線程:setDaemon方法
    3.5.8  sleep方法與wait方法的區別
    3.5.9  start方法與run方法的區別
    3.5.10  終止線程的4種方式
  3.6  Java中的鎖
    3.6.1  樂觀鎖
    3.6.2  悲觀鎖
    3.6.3  自旋鎖
    3.6.4  synchronized
    3.6.5  ReentrantLock
    3.6.6  synchronized和ReentrantLock的比較
    3.6.7  Semaphore
    3.6.8  AtomicInteger
    3.6.9  可重入鎖
    3.6.10  公平鎖與非公平鎖
    3.6.11  讀寫鎖:ReadWriteLock
    3.6.12  共享鎖和獨佔鎖
    3.6.13  重量級鎖和輕量級鎖
    3.6.14  偏向鎖
    3.6.15  分段鎖
    3.6.16  同步鎖與死鎖
    3.6.17  如何進行鎖優化
  3.7  線程上下文切換
    3.7.1  上下文切換
    3.7.2  引起線程上下文切換的原因
  3.8  Java阻塞隊列
    3.8.1  阻塞隊列的主要操作
    3.8.2  Java中的阻塞隊列實現
  3.9  Java併發關鍵字
    3.9.1  CountDownLatch
    3.9.2  CyclicBarrier
    3.9.3  Semaphore
    3.9.4  volatile關鍵字的作用
  3.10  多線程如何共享數據
    3.10.1  將數據抽象成一個類,並將對這個數據的操作封裝在類的方法中
    3.10.2  將Runnable對象作為一個類的內部類,將共享數據作為這個類的成員變數
  3.11  ConcurrentHashMap併發
    3.11.1  減小鎖粒度
    3.11.2  ConcurrentHashMap的實現
  3.12  Java中的線程調度
    3.12.1  搶佔式調度
    3.12.2  協同式調度
    3.12.3  Java線程調度的實現:搶佔式

    3.12.4  線程讓出CPU的情況
  3.13  進程調度演算法
    3.13.1  優先調度演算法
    3.13.2  高優先權優先調度演算法
    3.13.3  時間片的輪轉調度演算法
  3.14  什麼是CAS
    3.14.1  CAS的概念:比較並交換
    3.14.2  CAS的特性:樂觀鎖
    3.14.3  CAS自旋等待
  3.15  ABA問題
  3.16  什麼是AQS
    3.16.1  AQS的原理
    3.16.2  state:狀態
    3.16.3  AQS共享資源的方式:獨佔式和共享式
第4章  數據結構
  4.1  棧及其Java實現
  4.2  隊列及其Java實現
  4.3  鏈表
    4.3.1  鏈表的特點
    4.3.2  單向鏈表的操作及其Java實現
    4.3.3  雙向鏈表及其Java實現
    4.3.4  循環鏈表
  4.4  散列表
    4.4.1  常用的構造散列函數
    4.4.2  Hash的應用
  4.5  二叉排序樹
    4.5.1  插入操作
    4.5.2  刪除操作
    4.5.3  查找操作
    4.5.4  用Java實現二叉排序樹
  4.6  紅黑樹
    4.6.1  紅黑樹的特性
    4.6.2  紅黑樹的左旋
    4.6.3  紅黑樹的右旋
    4.6.4  紅黑樹的添加
    4.6.5  紅黑樹的刪除
  4.7  圖
    4.7.1  無向圖和有向圖
    4.7.2  圖的存儲結構:鄰接矩陣
    4.7.3  圖的存儲結構:鄰接表
    4.7.4  圖的遍歷
  4.8  點陣圖
    4.8.1  點陣圖的數據結構
    4.8.2  點陣圖的Java實現
第5章  Java中的常用演算法
  5.1  二分查找演算法
    5.1.1  二分查找演算法的原理
    5.1.2  二分查找演算法的Java實現
  5.2  冒泡排序演算法
    5.2.1  冒泡排序演算法的原理

    5.2.2  冒泡排序演算法的Java實現
  5.3  插入排序演算法
    5.3.1  插入排序演算法的原理
    5.3.2  插入排序演算法的Java實現
  5.4  快速排序演算法
    5.4.1  快速排序演算法的原理
    5.4.2  快速排序演算法的Java實現
  5.5  希爾排序演算法
    5.5.1  希爾排序演算法的原理
    5.5.2  希爾排序演算法的Java實現
  5.6  歸併排序演算法
    5.6.1  歸併排序演算法的原理
    5.6.2  歸併排序演算法的Java實現
  5.7  桶排序演算法
    5.7.1  桶排序演算法的原理
    5.7.2  桶排序演算法的Java實現
  5.8  基數排序演算法
    5.8.1  基數排序演算法的原理
    5.8.2  基數排序演算法的Java實現
  5.9  其他演算法
    5.9.1  剪枝演算法
    5.9.2  回溯演算法
    5.9.3  最短路徑演算法
第6章  網路與負載均衡
  6.1  網路
    6.1.1  OSI七層網路模型
    6.1.2  TCP/IP四層網路模型
    6.1.3  TCP三次握手/四次揮手
    6.1.4  HTTP的原理
    6.1.5  CDN的原理
  6.2  負載均衡
    6.2.1  四層負載均衡與七層負載均衡的對比
    6.2.2  負載均衡演算法
    6.2.3  LVS的原理及應用
    6.2.4  Nginx反向代理與負載均衡
第7章  資料庫及分散式事務
  7.1  資料庫的基本概念及原則
    7.1.1  存儲引擎
    7.1.2  創建索引的原則
    7.1.3  資料庫三範式
    7.1.4  資料庫事務
    7.1.5  存儲過程
    7.1.6  觸發器
  7.2  資料庫的併發操作和鎖
    7.2.1  資料庫的併發策略
    7.2.2  資料庫鎖
    7.2.3  資料庫分表
  7.3  資料庫分散式事務
    7.3.1  CAP
    7.3.2  兩階段提交協議

    7.3.3  三階段提交協議
    7.3.4  分散式事務
第8章  分散式緩存的原理及應用
  8.1  分散式緩存介紹
  8.2  Ehcache的原理及應用
    8.2.1  Ehcache的原理
    8.2.2  Ehcache的應用
  8.3  Redis的原理及應用
    8.3.1  Redis的原理
    8.3.2  Redis的應用
  8.4  分散式緩存設計的核心問題
    8.4.1  緩存預熱
    8.4.2  緩存更新
    8.4.3  緩存淘汰策略
    8.4.4  緩存雪崩
    8.4.5  緩存穿透
    8.4.6  緩存降級
第9章  設計模式
  9.1  設計模式簡介
  9.2  工廠模式的概念及Java實現
  9.3  抽象工廠模式的概念及Java實現
  9.4  單例模式的概念及Java實現
  9.5  建造者模式的概念及Java實現
  9.6  原型模式的概念及Java實現
  9.7  適配器模式的概念及Java實現
  9.8  裝飾者模式的概念及Java實現
  9.9  代理模式的概念及Java實現
  9.10  外觀模式的概念及Java實現
  9.11  橋接模式的概念及Java實現
  9.12  組合模式的概念及Java實現
  9.13  享元模式的概念及Java實現
  9.14  策略模式的概念及Java實現
  9.15  模板方法模式的概念及Java實現
  9.16  觀察者模式的概念及Java實現
  9.17  迭代器模式的概念及Java實現
  9.18  責任鏈模式的概念及Java實現
  9.19  命令模式的概念及Java實現
  9.20  備忘錄模式的概念及Java實現
  9.21  狀態模式的概念及Java實現
  9.22  訪問者模式的概念及Java實現
  9.23  中介者模式的概念及Java實現
  9.24  解釋器模式的概念及Java實現

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032