-
内容大纲
本书通过图文结合的讲解方式帮助读者理解JDK源码,完成多线程并发编程从入门到实践的飞跃,全书分为7章:第1章主要讲解Java基础类的源码实现;第2章主要剖析了常用集合类的原理源码;第3章讲解了常用原子类AtomicLong和LongAdder的用法和原理;第4章主要剖析了JUC独占锁ReentmntLock的原理源码,Reentranlock是学习其他并发类的基础:第5章剖析了两种常用并发容器List和Map的实现原理,重点讲解了ConcurrentHashMap的实现;第6章讲解了阻塞队列的实现,着重讲解其代表类ArrayBlockingQueue和LinkedBlockingQueue的原理源码;第7章剖析了线程池的原理源码,本书每章均配有重要知识点串讲视频。
本书适合Java研发工程师、对JDK源码或,Java并发编程感兴趣以及希望探索JUC包原理源码人员阅读。 -
作者介绍
-
目录
前言
第1章 Java必须掌握的基础类
1.1 JDK中所有类的基类——Object类
1.1.1 为什么java.lang包下的类不需要手动导入
1.1.2 类构造器
1.1.3 equals方法
1.1.4 getClass方法
1.1.5 hashCode方法
1.1.6 toString方法
1.1.7 notify()/notifyAll()/wait()
1.1.8 finalize方法
1.1.9 registerNatives方法
1.2 Java的深拷贝和浅拷贝
1.2.1 创建对象的5种方式
1.2.2 Clone方法
1.2.3 基本类型和引用类型
1.2.4 浅拷贝
1.2.5 深拷贝
1.2.6 如何实现深拷贝
1.3 最常用的引用类——Integer类
1.3.1 Integer类简介
1.3.2 Integer的主要属性
1.3.3 Integer类和int的区别
1.3.4 构造方法Integer(int),Integer(String)
1.3.5 toString(),toString(int i)和toString(int i,int radix)
1.3.6 自动拆箱和装箱
1.3.7 回顾本节开篇的问题
1.3.8 进行测试
1.3.9 equals()方法
1.3.10 String类的定义
1.3.11 hashCode()方法
1.3.12 parseInt(String s)和parseInt(String s,int radix)方法
1.3.13 compareTo(Integer anotherInteger)和compare(int x,int y)方法
1.4 日常编码中最常用的类——String类
1.4.1 字段属性
1.4.2 构造方法
1.4.3 equals(Object anObject)方法
1.4.4 hashCode()方法
1.4.5 charAt(int index)方法
1.4.6 compareTo(String anotherString)和compareToIgnoreCase(String str)方法
1.4.7 concat(String str)方法
1.4.8 indexOf(int ch)和indexOf(int ch,int fromIndex)方法
1.4.9 split(String regex)和split(String regex,int limit)方法
1.4.10 replace(char oldChar,char newChar)和String replaceAll(String regex
String replacement)方法
1.4.11 substring(int beginIndex)和substring(int beginIndex,int endIndex)方法
1.4.12 常量池
1.4.13 intern()方法
1.4.14 String真的不可变吗
1.5 本章小结
第2章 Java数据结构的实现集合类
2.1 集合工具类的重要类——Arrays类
2.1.1 asList方法
2.1.2 sort方法
2.1.3 binarySearch方法
2.1.4 copyOf方法
2.1.5 equals 和 deepEquals方法
2.1.6 fill方法
2.1.7 toString 和 deepToString方法
2.2 List集合的一种典型实现——ArrayList类
2.2.1 ArrayList 定义
2.2.2 字段属性
2.2.3 构造函数
2.2.4 添加元素
2.2.5 删除元素
2.2.6 修改元素
2.2.7 查找元素
2.2.8 遍历集合
2.2.9 SubList 方法
2.2.10 size()方法
2.2.11 isEmpty()方法
2.2.12 trimToSize()方法
2.3 List 集合的另一种典型实现——LinkedList 类
2.3.1 LinkedList定义
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.1 Hash表
2.4.2 什么是HashMap
2.4.3 HashMap定义
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.5 Map 集合的一种实现——LinkedHashMap 类
2.5.1 LinkedHashMap 定义
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.1 TreeMap 定义
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.1 LongAdder介绍
3.2.2 LongAdder源码解析
3.3 本章小结
第4章 Java并发包锁
4.1 为什么引入JUC锁
4.2 独占锁ReentrantLock原理
4.2.1 ReentrantLock简介
4.2.2 AQS同步队列
4.2.3 锁的获取
4.2.4 锁的释放
4.2.5 公平锁和非公平锁实现区别
4.3 Condition条件变量
4.3.1 Condition案例
4.3.2 Condition的源码解析
4.4 本章小结
第5章 并发容器原理
5.1 List并发容器
5.1.1 add方法:添加元素
5.1.2 修改/插入/删除
5.1.3 get方法:获取元素
5.2 Map并发容器
5.2.1 ConcurrentHashMap简介
5.2.2 put方法:添加元素
5.2.3 remove方法:删除元素
5.2.4 get方法:获取元素
5.2.5 获取元素个数:size方法
5.2.6 扩容与数据迁移
5.3 本章小结
第6章 阻塞队列原理
6.1 生产者-消费者模式
6.2 阻塞队列实现原理
6.3 ArrayBlockingQueue源码解析
6.3.1 出队和入队的环形队列
6.3.2 插入元素
6.3.3 移除元素
6.4 LinkedBlockingQueue源码解析
6.4.1 插入元素
6.4.2 移除元素
6.5 本章小结
第7章 线程池原理解析
7.1 为什么要用线程池
7.2 线程池的优点
7.3 线程池实现原理
7.4 线程池ThreadPoolExecutor
7.5 ThreadPoolExecutor源码解析
7.5.1 execute提交任务
7.5.2 addWorker创建并执行工作线程
7.5.3 关闭线程池
7.6 本章小结
附录
红黑树
基础工具类:Unsafe类
基础工具类:LockSupport类
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...