书籍详情
Java修炼指南:高频源码解析
作者:开课吧,曹子方,杨富杰,刘常凯 等 著
出版社:机械工业出版社
出版时间:2020-09-01
ISBN:9787111660156
定价:¥79.90
购买这本书可以去
内容简介
本书通过图文结合的讲解方式帮助读者理解JDK源码,完成多线程并发编程从入门到实践的飞跃,全书分为7章:第1章主要讲解Java基础类的源码实现;第2章主要剖析了常用集合类的原理源码;第3章讲解了常用原子类AtomicLong和LongAdder的用法和原理;第4章主要剖析了JUC独占锁ReentrantLock的原理源码,ReentrantLock是学习其他并发类的基础;第5章剖析了两种常用并发容器List和Map的实现原理,重点讲解了ConcurrentHashMap的实现;第6章讲解了阻塞队列的实现,着重讲解其代表类ArrayBlockingQueue 和LinkedBlockingQueue的原理源码;第7章剖析了线程池的原理源码。 本书适合Java研发工程师、对JDK源码或Java并发编程感兴趣以及希望探索JUC包原理源码人员阅读。
作者简介
暂缺《Java修炼指南:高频源码解析》作者简介
目录
◆ 目录:◆
前言
●第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类
前言
●第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类
猜您喜欢