Java工程师修炼之道 PDF
资源名称:Java工程师修炼之道 PDF
内容简介:
Java 开发一直是当前互联网领域最火热的开发技能之一,Java 工程师也一直是需求量非常大的开发职位。本书主要针对一名合格的Java 工程师的必备技能做了大纲性的总结和阐述。本书内容包括了工程化、常用开发框架、数据存储、数据传输、Java 编程高级知识、性能优化、安全技术等内容,基本涵盖了Java 工程师需要掌握的绝大部分技能点。
《Java工程师修炼之道》可以看作一本Java 工程师的入职指南,也可以看作一本串联Java 后端技能点的参考手册。通过精心编排的内容,刚入门的Java 工程师能够体系化地学习相关开发技能,有经验的Java 工程师能够查漏补缺,巩固自己的相关开发技能,进一步完善自身的Java 技术体系。
作者简介:
杭建,重度Java使用者,具有近10年的Java后端开发经验,一直专注于Java EE、系统架构、大数据等后端技术。现任随身云(中华万年历)技术总监,负责公司的技术培训、系统架构、研发管理等工作,带领研发团队完成了大数据平台、推荐系统、广告平台、传媒平台等系统,以及分布式调度、应用性能监测等基础框架的开发,支撑起了中华万年历、微历、牛哔的对话等高达三亿多用户访问量的应用。作者之前曾就职于网易杭州研究院从事基础平台、云计算相关技术的开发工作,参与了易信公众平台、网易云计算动态负载均衡等项目的研发。
资源目录:
第1章 后端技术导言
1.1后端基础设施
1.1.1 请求统一入口——API网关
1.1.2 业务应用和后端基础框架
1.1.3 缓存、数据库、搜索引擎、消息队列
1.1.4 文件存储
1.1.5 统一认证中心
1.1.6 单点登录系统
1.1.7 统一配置中心
1.1.8 服务治理框架
1.1.9 统一调度中心
1.1.10 统一日志服务
1.1.11 数据基础设施
1.1.12 故障监控
1.2 Java后端技术概览
1.2.1 软件开发的核心原则
1.2.2 软件开发的软件过程
1.2.3 日常开发常用工具
1.2.4 应用的运行环境
1.2.5 常用第三方服务
1.2.6 计算机基础科学知识
1.2.7 数据处理相关技能
1.2.8 Java编程知识
1.2.9 系统架构演化
1.2.10 典型的部署架构
1.3 如何学习后端技术
1.3.1 扎实的计算机基础知识
1.3.2 知其然更要知其所以然
1.3.3 动手实践
1.3.4 频繁练习
1.3.5 持续学习
1.3.6 自我总结
1.3.7 如何学习一门新技术
1.3.8 总结
第2章 Java项目与工程化
2.1 项目构建
2.1.1 传统构建工具——Ant
2.1.2 主流构建工具——Maven
2.1.3 新兴构建工具——Gradle
2.2 代码版本控制
2.2.1 集中式代码版本管理——SVN
2.2.2 分布式代码版本管理——Git
2.2.3 提交日志的规范
2.3 代码质量保证
2.3.1 使用单元测试保证代码质量
2.3.2 衡量单元测试的标准
2.3.3 开发规范与建议
第3章 开发框架
3.1 依赖注入
3.1.1 JSR-330依赖注入规范
3.1.2 Guice
3.1.3 PicoContainer
3.1.4 Dagger
3.1.5 Spring Framework
3.1.6 循环依赖问题
3.2 对象关系映射
3.2.1 表元数据的映射
3.2.2 CRUD以及属性的查询
3.2.3 查询缓存的使用
3.2.4 结果的映射
3.2.5 规范SQL书写的语句构建器
3.2.6 使用提示
3.3 日志
3.3.1 JDK Logging
3.3.2 Log4j
3.3.3 Log4j2
3.3.4 Logback
3.3.5 统一日志API的门面框架
3.3.6 统一日志框架的使用
3.4 Web MVC
3.4.1 为什么是Spring MVC
3.4.2 Spring MVC的请求处理流程
3.4.3 典型的配置方式
3.4.4 无XML的配置方式
3.4.5 对MVC应用做单元测试
3.4.6 验证Web请求的参数
3.4.7 使用异步Servlet
3.4.8 使用提示
第4章 Spring
4.1 Spring核心组件
4.1.1 Spring的双亲上下文机制
4.1.2 Spring中的事件机制
4.1.3 Bean的初始化和销毁
4.1.4 Bean的动态构造
4.1.5 注入集合、枚举、类的静态字段
4.1.6 面向方面编程——AOP
4.1.7 进阶XML的配置
4.1.8 无XML的配置方式
4.2 Spring数据操作框架
4.2.1 Spring JDBC
4.2.2 Spring Data Redis
4.2.3 Spring Data MongoDB
4.3 Spring Boot
4.3.1 Spring Boot使用示例
4.3.2 Spring Boot的运行原理
4.3.3 Spring Boot的组成模块
4.3.4 小结
4.4 Spring常用组件
4.4.1 表达式引擎——Spring Expression Language
4.4.2 远程过程访问的支持——Spring Remoting
4.4.3 Spring与JMX的集成
4.4.4 定时任务的支持——Spring Quartz
4.4.5 跨域请求的支持——Spring CORS
4.5 总结
第5章 数据存储
5.1 关系型数据库——MySQL
5.1.1 存储引擎
5.1.2 字符集和校对规则
5.1.3 索引的使用
5.1.4 查询缓存的使用
5.1.5 数据同步中的Binlog
5.1.6 事务机制
5.1.7 大表优化
5.1.8 高可用支持
5.1.9 使用提示
5.2 非关系型数据库
5.2.1 KV数据库
5.2.2 文档数据库——MongoDB
5.2.3 列数据库——HBase
5.3 缓存
5.3.1 本地缓存
5.3.2 分布式缓存——Redis
5.3.3 缓存设计的典型方案
5.4 搜索引擎——Elasticsearch
5.4.1 开源全文检索库——Apache Lucene
5.4.2 关键概念
5.4.3 查询的优化
5.4.4 内存的使用优化
5.4.5 开源日志管理方案——ELK
第6章 数据通信
6.1 RESTful架构风格
6.1.1 支持的操作
6.1.2 返回码
6.1.3 资源概念
6.1.4 数据的安全保障
6.1.5 请求的限流
6.1.6 超文本API
6.1.7 编写文档
6.1.8 RESTful API实现
6.2 远程过程调用——RPC
6.2.1 JDK自带的RPC——RMI
6.2.2 Hessian
6.2.3 Thrift
6.2.4 Dubbo
6.2.5 数据的序列化机制
6.2.6 使用提示
6.3 消息中间件
6.3.1 简单消息中间件——ActiveMQ
6.3.2 通用消息中间件——RabbitMQ
6.3.3 日志消息中间件——Kafka
6.3.4 本地消息队列
第7章 Java编程进阶
7.1 Java内存管理
7.1.1 JVM虚拟机内存
7.1.2 垃圾回收理论
7.1.3 常用垃圾回收器
7.2 Java网络编程
7.2.1 常见网络I/O模型
7.2.2 Java网络编程模型
7.3 Java并发编程
7.3.1 并发原理
7.3.2 并发思路
7.3.3 并发工具
7.3.4 并发编程建议
7.4 Java开发利器
7.4.1 Apache工具库——Apache Commons
7.4.2 Google工具库——Guava
7.4.3 最好用的时间库——Joda Time
7.4.4 高效JSON处理库——FastJson
7.4.5 高效Bean映射框架——Orika
7.5 Java新版本的特性
7.5.1 Java 7
7.5.2 Java 8
7.5.3 Java 9
7.6 总结
第8章 性能调优
8.1 调优准备
8.1.1 HotSpot虚拟机体系结构
8.1.2 操作系统的性能调优
8.1.3 系统常用诊断工具
8.1.4 JDK常用诊断工具
8.2 性能分析
8.2.1 CPU分析
8.2.2 内存分析
8.2.3 I/O分析
8.2.4 其他分析工具
8.3 性能调优
8.3.1 CPU调优
8.3.2 内存调优
8.3.3 I/O调优
8.3.4 其他优化建议
8.3.5 JVM参数配置
8.3.6 JVM性能增强
第9章 安全技术
9.1 Java加密
9.1.1 单向加密算法
9.1.2 对称加密算法
9.1.3 非对称加密算法
9.2 安全HTTP——HTTPS
9.2.1 安全协议——SSL/TLS
9.2.2 证书中心——CA
9.2.3 请求交互过程
9.2.4 性能优化
9.3 Web安全
9.3.1 跨站点脚本攻击
9.3.2 跨站点请求伪造
9.3.3 SQL注入攻击
9.3.4 基于约束条件的SQL攻击
9.3.5 分布式拒绝服务攻击——DDOS
9.3.6 会话固定攻击——Session fixation
附录A 代码构建常用命令
附录B Git常用命令
附录C MySQL常用命令
附录D MongoDB常用命令
附录E Java调优常用命令
资源截图: