Java 修煉指南:高頻源碼解析

曹子方 楊富傑 劉常凱等編著

  • 出版商: 機械工業
  • 出版日期: 2020-08-01
  • 定價: $479
  • 售價: 8.5$407
  • 語言: 簡體中文
  • 頁數: 284
  • 裝訂: 平裝
  • ISBN: 7111660153
  • ISBN-13: 9787111660156
  • 相關分類: Java 程式語言
  • 立即出貨 (庫存 < 4)

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

商品描述

本書通過圖文結合的講解方式幫助讀者理解JDK源碼,完成多線程並發編程從入門到實踐的飛躍,
全書分為7章:
D1章主要講解Java基礎類的源碼實現;
D2章主要剖析了常用集合類的原理源碼;
D3章講解了常用原子類AtomicLong和LongAdder的用法和原理;
D4章主要剖析了JUCD佔鎖ReentrantLock的原理源碼,ReentrantLock是學習其他並發類的基礎;
D5章剖析了兩種常用並發容器List和Map的實現原理,重點講解了ConcurrentHashMap的實現;
D6章講解了阻塞隊列的實現,著重講解其代表類ArrayBlockingQueue 和LinkedBlockingQueue的原理源碼;
D7章剖析了線程池的原理源碼。

本書適合Java研發工程師、對JDK源碼或Java並發編程感興趣以及希望探索JUC包原理源碼人員閱讀。

目錄大綱


◆ 目錄:◆
前言
●第1章Java必須掌握的基礎類
1.1JDK中所有類的基類——Object類
1.1.1為什麼java.lang包下的類不需要手動導入
1.1.2類構造器
1.1.3equals方法
1.1. 4getClass方法
1.1.5hashCode方法
1.1.6toString方法
1.1.7notify()/notifyAll()/wait()
1.1.8finalize方法
1.1.9registerNatives方法
1.2Java的深拷貝和淺拷貝
1.2.1創建對象的5種方式
1.2. 2Clone方法
1.2.3基本類型和引用類型
1.2.4淺拷貝
1.2.5深拷貝
1.2.6如何實現深拷貝
1.3最常用的引用類——Integer類
1.3.1Integer類簡介
1.3.2Integer的主要屬性
1.3. 3Integer類和int的區別
1.3.4構造方法Integer(int),Integer(String)
1.3.5toString(),toString(int i)和toString(int i,int radix)
1.3.6自動拆箱和裝箱
1.3.7回顧本節開篇的問題
1.3.8進行測試
1.3.9equals()方法
1.3.10String類的定義
1.3.11hashCode()方法
1.3.12parseInt(String s)和parseInt (String s,int radix)方法
1.3.13compareTo(Integer anotherInteger)和compare(int x,int y)方法
1.4日常編碼中最常用的類——String類
1.4.1字段屬性
1.4.2構造方法
1.4.3equals (Object anObject)方法
1.4.4hashCode()方法
1.4.5charAt(int index)方法
1.4.6compareTo(String anotherString)和compareToIgnoreCase(String str)方法
1.4.7concat(String str)方法
1.4.8indexOf(int ch)和indexOf (int ch,int fromIndex)方法
1.4.9split(String regex)和split(String regex,int limit)方法
1.4.10replace(char oldChar,char newChar)和String replaceAll(String regex,
String replacement)方法
1.4.11substring(int beginIndex)和substring(int beginIndex,int endIndex)方法
1.4.12常量池
1.4.13intern()方法
1.4 .14String真的不可變嗎
1.5本章小結

●第2章Java數據結構的實現集合類
2.1集合工具類的重要類——Arrays類
2.1.1asList方法
2.1.2sort方法
2.1.3binarySearch方法
2.1.4copyOf方法
2.1. 5equals和deepEquals方法
2.1.6fill方法
2.1.7toString和deepToString方法
2.2List集合的一種典型實現——ArrayList類
2.2.1ArrayList定義
2.2.2字段屬性
2.2.3構造函數
2.2.4添加元素
2.2.5刪除元素
2.2.6修改元素
2.2.7查找元素
2.2.8遍歷集合
2.2.9SubList方法
2.2.10size()方法
2.2.11isEmpty()方法
2.2.12trimToSize()方法
2.3List集合的另一種典型實現——LinkedList類
2.3.1LinkedList定義
2.3.2字段屬性
2.3 .3構造函數
2.3.4添加元素
2.3.5刪除元素
2.3.6修改元素
2.3.7查找元素
2.3.8遍歷集合
2.3.9迭代器和for循環效率差異
2.4常用的集合——HashMap類
2.4.1Hash表
2.4.2什麼是HashMap
2.4.3HashMap定義
2.4.4字段屬性
2.4.5構造函數
2.4.6確定Hash桶數組索引位置
2.4.7添加元素
2.4.8擴容機制
2.4.9刪除元素
2.4.10查找元素
2.4.11遍曆元素
2.5Map集合的一種實現——LinkedHashMap類
2.5.1LinkedHashMap定義
2.5.2字段屬性
2.5.3構造函數
2.5.4添加元素
2.5.5刪除元素
2.5.6查找元素
2.5.7遍曆元素
2.5.8迭代器
2.6基於樹實現的類——TreeMap類
2.6 .1TreeMap定義
2.6.2字段定義
2.6.3構造函數
2.6.4添加元素
2.6.5刪除元素
2.6.6查找元素
2.6.7遍曆元素
2.7本章小結

●第3章Java並發包原子類
3.1原子變量操作類AtomicLong
3.2高性能原子操作類LongAdder
3.2.1LongAdder介紹
3.2.2LongAdder源碼解析
3.3本章小結

●第4章Java並發包鎖
4.1為什麼引入JUC鎖
4.2獨占鎖ReentrantLock原理
4.2.1ReentrantLock簡介
4.2.2AQS同步隊列
4.2.3鎖的獲取
4.2.4鎖的釋放
4.2.5公平鎖和非公平鎖實現區別
4.3Condition條件變量
4.3.1Condition案例
4.3.2Condition的源碼解析
4.4本章小結

●第5章並發容器原理
5.1List並發容器
5.1.1add方法:添加元素
5.1.2修改/插入/刪除
5.1.3get方法:獲取元素
5.2Map並發容器
5.2.1ConcurrentHashMap簡介
5.2.2put方法:添加元素
5.2.3remove方法:刪除元素
5.2.4get方法:獲取元素
5.2.5獲取元素個數:size方法
5.2.6擴容與數據遷移
5.3本章小結

●第6章阻塞隊列原理
6.1生產者-消費者模式
6.2阻塞隊列實現原理
6.3ArrayBlockingQueue源碼解析
6.3.1出隊和入隊的環形隊列
6.3.2插入元素
6.3 .3移除元素
6.4LinkedBlockingQueue源碼解析
6.4.1插入元素
6.4.2移除元素
6.5本章小結

●第7章線程池原理解析
7.1為什麼要用線程池
7.2線程池的優點
7.3線程池實現原理
7.4線程池ThreadPoolExecutor
7.5ThreadPoolExecutor源碼解析
7.5.1execute提交任務
7.5.2addWorker創建並執行工作線程
7.5. 3關閉線程池
7.6本章小結

●附錄
紅黑樹
基礎工具類:Unsafe類
基礎工具類:LockSupport類