自我提升
类型
可以朗读
语音朗读
200千字
字数
2025-07-01
发行日期
展开全部
主编推荐语
手把手教你高效阅读源码,快速提升编程能力。
内容简介
如何克服阅读经典源码的畏难情绪?如何将零散的Java高级知识串联为一个整体?如何将Java高级知识的学习与实践融为一体?阅读本书,你将获得想要的答案。本书向流畅阅读集高并发、高可用于一体的ZooKeeper源码的终极目标出发,从环境搭建开始点滴积累,提供了一种与众不同的Java语言学习路径。
本书首先讲解了源码阅读环境选型、必备插件准备、快捷操作高级技巧、源码跟踪调试高级技巧及常见问题分析,介绍了如何构建ZooKeeper源码及多个底层开源组件的源码阅读环境;其次完整地论述了字符集的基础知识,说明了字符乱码产生的原因及根本的解决办法;
接着以装饰模式为核心构建一套新的I/O学习方法,并结合源码深入分析了线程、线程池、ThreadFactory和ThreadLocal;然后以JCStress压测为辅助手段深入讲解Java内存模型,并深入分析了高并发常用编程组件;最后围绕案例讲解基于BIO、NIO、AIO的网络编程模型,以实战形式分析RMI、WebService、RPC、HttpServer、HttpClient等JDK内置组件。
目录
- 版权信息
- 内容简介
- 前言
- 第1章 打磨源码阅读环境
- 1.1 集成开发环境准备
- 1.1.1 Eclipse IDE安装与优化
- 1.1.2 IntelliJ IDEA社区版安装与优化
- 1.2 Eclipse开发环境高级设置
- 1.2.1 高效编程必备设置
- 1.2.2 全键盘操作修炼之道
- 1.3 IDEA快捷操作进阶
- 1.3.1 快捷操作之Live Templates
- 1.3.2 快捷操作之Postfix Completion
- 1.4 编码效率提升利器——Vrapper与IdeaVim速成
- 1.4.1 命令模式
- 1.4.2 文本编辑模式
- 1.4.3 尾行模式
- 1.5 JDK版本选型、安装和配置
- 1.5.1 版本选型——OpenJDK 11
- 1.5.2 Eclipse环境设置Java Module可访问性
- 1.5.3 IDEA中设置JDK Module可见性
- 1.6 本章小结
- 第2章 创建示例工程,开启源码调试研究
- 2.1 示例工程的设计原则
- 2.2 创建标准工作区——Eclipse
- 2.3 创建标准工作区——IntelliJ IDEA
- 2.4 源码跟踪及调试实用技巧——Eclipse
- 2.4.1 六种显式断点各尽其用
- 2.4.2 六种隐式断点深度揭秘
- 2.4.3 揭秘断点调试中的八大“灵异”事件
- 2.4.4 持续提升Debug技能
- 2.5 基于IntelliJ IDEA的源码跟踪及调试实用技巧
- 2.5.1 IDEA调试功能“平替”Eclipse
- 2.5.2 IDEA高阶调试技巧
- 2.5.3 调试侵入干扰程序功能和性能
- 2.6 本章小结
- 第3章 导入、编译与运行ZooKeeper源码
- 3.1 ZooKeeper3.4.14源码阅读准备
- 3.1.1 ZooKeeper 3.4.14源码导入Eclipse
- 3.1.2 ZooKeeper 3.4.14源码导入IDEA
- 3.2 极速简易法开启ZK工程验证
- 3.2.1 ZK编译常见问题处理
- 3.2.2 突破源码阅读第一关
- 3.2.3 ZK服务端启动
- 3.2.4 ZK客户端启动连接
- 3.3 JDK 11源码解压缩及导入
- 3.4 Log4j源码阅读准备
- 3.4.1 源码搜索方法汇总
- 3.4.2 将日志组件源码导入到示例工程
- 3.4.3 补充导入循环依赖组件
- 3.5 SLF4J源码阅读准备
- 3.6 JUnit源码阅读准备
- 3.7 本章小结
- 第4章 根治中文乱码——Java字符集考证
- 4.1 常见字符集与字符编码辨识
- 4.1.1 ASCII码回顾
- 4.1.2 单字节拉丁字符集ISO-8859-1
- 4.1.3 双字节中文字符集GB2312
- 4.1.4 汉字扩展库GBK与CP936代码页
- 4.1.5 Windows操作系统中的ANSI
- 4.2 统一码(Unicode)
- 4.2.1 动手制作Unicode字典表
- 4.2.2 Unicode字符集知识体系
- 4.2.3 基于Unicode字符集的六大编码辨析
- 4.3 发掘Java端字符集控制的工具箱
- 4.3.1 JDK命令行工具与字符集控制参数
- 4.3.2 操作系统对字符集的影响
- 4.3.3 IDE中的字符编码设置
- 4.4 让乱码原地现形的组合拳
- 4.4.1 解决乱码的策略
- 4.4.2 字符集有损转换与无损转换实践
- 4.4.3 常见乱码典型特征识别
- 4.4.4 Java命令行参数解决乱码问题
- 4.4.5 IDE设置与乱码处置
- 4.4.6 通过代码转换解决乱码(String类)
- 4.4.7 操作系统侧修正乱码
- 4.5 字符集控制底层逻辑与JDK源码解读
- 4.5.1 UTF-16字符编码关联Character类
- 4.5.2 String类中的显式或隐式编码转换
- 4.5.3 所有字符集或编码的祖先——Charset类
- 4.5.4 Java序列化之DataOutputStream类
- 4.5.5 Java反序列化之DataInputStream类
- 4.5.6 属性文件处理与Properties类
- 4.5.7 标准输入、标准输出与System类
- 4.6 本章小结
- 第5章 摒弃死记硬背,全方位精通Java I/O体系
- 5.1 Java I/O迂回学习归纳总结
- 5.1.1 深扒Java I/O体系学习十大槽点
- 5.1.2 Java I/O学习的必要性
- 5.1.3 Java I/O学习范式
- 5.2 字节流基础应用及源码分析
- 5.2.1 向本地磁盘写Java对象
- 5.2.2 两种方式从本地磁盘获取文本内容
- 5.2.3 自定义输入流——按指定分隔符读取
- 5.2.4 字节输出流源码解读
- 5.2.5 字节输入流源码解读
- 5.3 节点流、过滤流与序列化的综合应用
- 5.3.1 八个原生数据类型的字节码输入输出
- 5.3.2 自定义原生数据类型可视化输出
- 5.3.3 Java对象的序列化与反序列化
- 5.3.4 回退流应用原理解析
- 5.4 字符流基础应用及源码分析
- 5.4.1 字符输入流的整行读取
- 5.4.2 从源码看字符流与字节流的关系
- 5.5 字符流与半个汉字读写问题
- 5.5.1 字符输出流对SMP文字的支持
- 5.5.2 用混编字符串考查字符输出流
- 5.6 从BIO到NIO的延伸阅读
- 5.6.1 NIO中的通道和缓冲区
- 5.6.2 自定义字节缓冲区MyByteBuffer
- 5.6.3 模拟Netty中的双向指针字节缓冲区
- 5.6.4 NIO中的性能优化
- 5.7 本章小结
- 第6章 盘点线程、线程状态与线程池
- 6.1 轻松入门多线程编程
- 6.1.1 三种线程初始化方法比较
- 6.1.2 返回式线程的回调与阻塞
- 6.1.3 源码解读之java.lang.Thread类
- 6.2 枚举全部线程状态,探究状态跳转规则
- 6.2.1 枚举线程运行时的六种状态
- 6.2.2 区分Thread类中的interrupt关键字
- 6.2.3 线程中断不能立即生效的例外情况
- 6.3 线程池与线程工厂应用
- 6.3.1 线程池中的单例多线程
- 6.3.2 静态变量无惧多线程干扰
- 6.3.3 带返回参数的线程池应用
- 6.3.4 ThreadFactory简单应用
- 6.4 线程本地对象与线程安全
- 6.4.1 ThreadLocal类应用实例
- 6.4.2 从源码再认识ThreadLocal
- 6.5 非侵入式多线程优化重构
- 6.6 本章小结
- 第7章 挖掘Java高并发支撑体系
- 7.1 线程安全基础之synchronized关键字
- 7.1.1 synchronized关键字锁定对象验证
- 7.1.2 线程通信与wait、notify和notifyAII
- 7.2 Java内存模型与高并发陷阱
- 7.2.1 JMM原子性检验及实现策略
- 7.2.2 JMM可见性验证及应对策略
- 7.2.3 用JCStress验证JMM的有序性
- 7.2.4 finaI关键字语义分析
- 7.3 ZK组件之高并发Lock应用
- 7.3.1 LockSupport功能演示
- 7.3.2 重入锁ReentrantLock详细解读
- 7.3.3 AQS底层的原子性与可见性
- 7.3.4 读写分离与ReentrantReadWriteLock
- 7.4 ZK组件之高并发同步工具应用
- 7.4.1 ZK应用之CountDownLatch
- 7.4.2 CountDownLatch源码解析
- 7.5 ZK组件之高性能List、Set和Map
- 7.5.1 ArrayList线程不安全分析
- 7.5.2 线程安全的List实现及Vector类解析
- 7.5.3 读多写少之CopyOnWriteArrayList
- 7.6 ZK组件之高并发Queue应用
- 7.6.1 单锁数组队列ArrayBIockingQueue
- 7.6.2 双锁链表队列LinkedBIockingQueue
- 7.6.3 无锁无界队列ConcurrentLinkedQueue
- 7.7 本章小结
- 第8章 探索网络原理与网络应用的边界
- 8.1 阻塞式网络编程模型
- 8.1.1 Java阻塞式网络编程
- 8.1.2 基于BIO的双向简易聊天室实现
- 8.1.3 基于NIO的阻塞式网络编程模型
- 8.2 非阻塞、多路复用和异步网络编程模型
- 8.2.1 基于NIO的非阻塞式网络编程模型
- 8.2.2 基于Selector的多路复用网络编程模型
- 8.2.3 基于AIO的异步网络编程模型
- 8.3 JDK内置网络组件应用
- 8.3.1 远程方法调用(RMI)
- 8.3.2 WebService远程调用
- 8.3.3 远程过程调用(RPC)
- 8.3.4 JDK内置HTTP协议支持
- 8.4 ZK组件之网络应用
- 8.4.1 Netty模式应用
- 8.4.2 ZK工程中的NIO模式应用分析
- 8.4.3 ZK工程中Netty应用分析
- 8.4.4 粘包拆包问题处理
- 8.5 本章小结
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。