Java工程师修炼之道pdf

图书网 2021年5月18日11:56:09
评论
1.3K1

Java工程师修炼之道 作者:杭建

Java工程师修炼之道 出版社:电子工业出版社

Java工程师修炼之道 内容简介

Java开发一直是当前互联网领域最火热的开发技能之一,Java工程师也一直是需求量非常大的开发职位。本书主要针对一名合格的Java工程师的必备技能做了大纲性的总结和阐述。本书内容包括了工程化、常用开发框架、数据存储、数据传输、Java编程高级知识、性能优化、安全技术等内容,基本涵盖了Java工程师需要掌握的绝大部分技能点。

Java工程师修炼之道 目录

第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 SpringFramework

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 JDKLogging

3.3.2 Log4j

3.3.3 Log4j2

3.3.4 Logback

3.3.5 统一日志API的门面框架

3.3.6 统一日志框架的使用

3.4 WebMVC

3.4.1 为什么是SpringMVC

3.4.2 SpringMVC的请求处理流程

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 SpringJDBC

4.2.2 SpringDataRedis

4.2.3 SpringDataMongoDB

4.3 SpringBoot

4.3.1 SpringBoot使用示例

4.3.2 SpringBoot的运行原理

4.3.3 SpringBoot的组成模块

4.3.4 小结

4.4 Spring常用组件

4.4.1 表达式引擎——SpringExpressionLanguage

4.4.2 远程过程访问的支持——SpringRemoting

4.4.3 Spring与JMX的集成

4.4.4 定时任务的支持——SpringQuartz

4.4.5 跨域请求的支持——SpringCORS

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 开源全文检索库——ApacheLucene

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 RESTfulAPI实现

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工具库——ApacheCommons

7.4.2 Google工具库——Guava

7.4.3 最好用的时间库——JodaTime

7.4.4 高效JSON处理库——FastJson

7.4.5 高效Bean映射框架——Orika

7.5 Java新版本的特性

7.5.1 Java7

7.5.2 Java8

7.5.3 Java9

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 会话固定攻击——Sessionfixation

附录A 代码构建常用命令

附录B Git常用命令

附录C MySQL常用命令

附录D MongoDB常用命令

附录E Java调优常用命令

Java工程师修炼之道 精彩文摘

第1章 后端技术导言

淘宝双11、京东618,大家疯狂抢购各种降价商品,不断确认提交订单,商家不断地发出快递;使用今日头条,无数你感兴趣的内容出现在你的面前,让你能够实时掌握你最关心的消息;使用滴滴,你快速又便宜地打到了车,到达了目的地;使用大众点评,你迅速找到了周围最受欢迎的饭店,吃到了可口的饭菜;使用中华万年历,你实时快速地知道了明天的天气预报,是否是黄道吉日,做好了一天的日程规划,诸如此类。日常生活中这些APP给大家的生活带来了翻天覆地的改变,老百姓的衣食住行也越来越依赖于这些APP。在这些或绚丽或实用的APP后面到底是什么技术在支撑着它们的运行呢?

从大的范围来讲,支撑这些APP的主要有前端、后端这两种技术。前端指的是用户能够直接感知到的那些东西,包括Web前端和客户端技术;而后端技术是相对于前端技术而言的,是藏在网络后面支撑网页、APP、应用软件运行的设施、环境、服务等。通过这两种技术的结合,就产生了一个稳定的互联网软件,可以给用户提供持续稳定的服务。其中后端技术通过几台甚至成千上万台服务器给前端提供高质量的服务,扮演了一个基础设施、运转轴心的角色。

相比前端技术的种类繁多以及不可预测性(比如诺基亚的Symbian在火爆了n年以后瞬间没落,相应的编程技术也随着失去了用武之地),后端技术还是比较稳定的,即使新的技术层出不穷,旧的应用比较广泛的技术也不会突然就走下历史舞台。但是后端技术的涵盖范围实在太广,Web、大数据、高并发、数据库、数据挖掘、机器学习……任何一个技能点单拎出来都需要花费极大的精力才能做到融会贯通。因此这并非一个人能够全部掌握的,即使是很多所谓的全栈工程师,其实也就掌握了系统前后端的基本技能而已,要说做到精通,则没几个人敢妄言。

由于前端技术和后端技术与用户接触的层次不一样,很多关注点也是不一样的。对于后端技术来讲,一般情况下需要关注的是以下几个指标。

●可用率:能够提供正常服务的时间占线上运行时间的百分比。这是后端服务中一个很关键的指标,很多应用都需要达到99.9%以上。这里需要注意的是,系统的可用性经常是用响应时间作为衡量指标的,关注的是系统提供正常服务的效率;与响应时间类似,吞吐量是衡量系统可用性的另一个指标,指的是系统一段时间内的处理能力。

●稳定性:也叫作鲁棒性、健壮性,即服务在异常和危险情况下保持稳定的能力。

●容错性:在服务出现错误或者异常的时候,能够继续提供一定服务的能力,主要强调的是容许误差、故障的能力。

●扩展性:主要指服务的动态扩展能力,即通过扩展(而非修改)现有系统的能力来满足需求的能力。

●可维护性:指的是修正服务错误、修改服务功能的能力。

●安全性:保障系统以及用户数据安全的能力,包括保障系统不被非法入侵、用户数据不被泄露等。

除此之外很多书籍和资料上还会有可靠性、可用性等说法,其本质上是以上指标的另一种说法而已。一般来说后端服务只要满足了高可用、可容错、可扩展、可维护、稳定性、安全性即可。后端技术也基本是围绕着这几个目标来进行的。

综上,由于后端技术覆盖范围太广以及本人知识所限,本书所说的后端技术主要指一些Java后端工程师能够胜任开发工作应该必备的一些技能。

图书网:Java工程师修炼之道pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

人在职场

面试沟通巧技能pdf

适读人群 :本书可为广大求职者面试提供有益指导,也适合作为各层次毕业生找工作的指导用书。 面试,实质是沟通!谁掌握了面试沟通的巧技能,谁就获得了面试的致胜法宝。本书讲述了求职者在面...
人工智能

深度学习之PyTorch实战计算机视觉pdf

适读人群 :本书面向对深度学习技术感兴趣,但是相关基础知识较为薄弱或者零基础的读者。 作者的文笔很好,对深度学习、Python、PyTorch、神经网络、迁移学习及相关数学知识讲解...
项目管理IT人文

关键链pdf

关键链 作者: 艾利·高德拉特 译者: 罗嘉颖 关键链 出版社: 电子工业出版社 关键链 内容简介 《关键链(修订本)》内容简介:项目无处不在.但都有一定的特征:可动用的资源有限;有完成日期及开支限制...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: