描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121349096
√重磅新作,阿里人再现精品力作!
在《阿里巴巴Java开发手册》之后,孤尽、鸣莎不负众望地再次给大家带来了一本能刷新日常、提升意识的Java编程专业书籍,真正来自阿里集团的智慧与经验,是用血淋淋的故障换来的。为了出版本书,作者全年无休,夜以继日。在*后冲刺阶段,作者闭关数月,满背胶布,脑力激荡,字字斟酌,每幅画亲笔绘制,体现出来的毅力和意志,不得不让人钦佩!
√夯实基础,让每一位程序员都有一个正确规范的起跑!
正如孤尽所言,“对程序员来说,关键是骨子里要意识到:规范也是生产力,让个性化尽量表现在代码可维护性和算法效率的提升上。”本书讲解由浅入深,囊括了一名开发工程师应具备的全部基本素质,如果每一位程序员在职业生涯的开始读懂这本书并切实地将其中理念与规范应用到实际编程工作当中,便让团队如同本书封面里的大雁一样,能够高效沟通与协作,飞向更高天空!
√希冀未来,让书写社会发展的每一行代码都兼具可读性和可维护性!
正如毕玄所言:“一位优秀工程师的功底体现他的每一行代码中。”作为阿里全球经济体的开发准则,本书搜集线上的真实故障,经过整理后与相应的知识点结合在一起进行讲解,身临其境,阐述了知其不然的背后逻辑,以技术解决技术问题。
《码出高效:Java 开发手册》源于影响了全球250万名开发工程师的《阿里巴巴Java开发手册》,作者静心沉淀,对Java规约的来龙去脉进行了全面而彻底的内容梳理。本书以实战为中心,以新颖的角度全面阐述面向对象理论,逐步深入地探索怎样成为一位优秀开发工程师。比如:如何驾轻就熟地使用各类集合框架;如何得心应手地处理高并发多线程问题;如何顺其自然地写出可读性强、可维护性好的优雅代码。本书旁征博引、文风轻松,秉持“图胜于表,表胜于言”的理念,深入浅出地将计算机基础、面向对象思想、JVM探源、数据结构与集合、并发与多线程、单元测试等知识客观、立体地呈现出来。紧扣学以致用、学以精进的目标,结合阿里巴巴实践经验和故障案例,与底层源码解析融会贯通,娓娓道来。本书以打造民族标杆图书为己任,追求极致,打磨精品,在技术广度和深度上兼具极强的参考性,适合计算机相关行业的管理者和研发人员、高等院校的计算机专业师生等阅读。无论是初学者入门,或是中、高级程序员的进阶提升,本书均为不容置疑的选择。
第1 章 计算机基础
1.1 走进0 与1 的世界
1.2 浮点数
1.2.1 科学计数法
1.2.2 浮点数表示
1.2.3 加减运算
1.2.4 浮点数使用
1.3 字符集与乱码
1.4 CPU 与内存
1.5 TCP/IP
1.5.1 网络协议
1.5.2 IP
1.5.3 TCP 建立连接
1.5.4 TCP 断开连接
1.5.5 连接池
1.6 信息安全
1.6.1 黑客与安全
1.6.2 SQL 注入
1.6.3 XSS 与CSRF
1.6.4 CSRF
1.6.5 HTTPS
1.7 编程语言的发展
第2 章 面向对象
2.1 OOP 理念
2.2 初识Java
2.3 类
2.3.1 类的定义
2.3.2 接口与抽象类
2.3.3 内部类
2.3.4 访问权限控制
2.3.5 this 与 super
2.3.6 类关系
2.3.7 序列化
2.4 方法
2.4.1 方法签名
2.4.2 参数
2.4.3 构造方法
2.4.4 类内方法
2.4.5 getter 与setter
2.4.6 同步与异步
2.4.7 覆写
2.5 重载
2.6 泛型
2.7 数据类型
2.7.1 基本数据类型
2.7.2 包装类型
2.7.3 字符串
第3 章 代码风格
3.1 命名规约
3.1.1 常量
3.1.2 变量
3.2 代码展示风格
3.2.1 缩进、空格与空行
3.2.2 换行与高度
3.2.3 控制语句
3.3 代码注释
3.3.1 注释三要素
3.3.2 注释格式
第4 章 走进JVM
4.1 字节码
4.2 类加载过程
4.3 内存布局
4.4 对象实例化
4.5 垃圾回收
第5 章 异常与日志
5.1 异常分类
5.2 try 代码块
5.3 异常的抛与接
5.4 日志
5.4.1 日志规范
5.4.2 日志框架
第6 章 数据结构与集合
6.1 数据结构
6.2 集合框架图
6.2.1 List 集合
6.2.2 Queue 集合
6.2.3 Map 集合
6.2.4 Set
6.3 集合初始化
6.4 数组与集合
6.5 集合与泛型
6.6 元素的比较
6.6.1 Comparable 和Comparator
6.6.2 hashCode 和equals
6.7 fail-fast 机制
6.8 Map 类集合
6.8.1 红黑树
6.8.2 TreeMap
6.8.3 HashMap
6.8.4 ConcurrentHashMap
第7 章 并发与多线程
7.1 线程安全
7.2 什么是锁
7.3 线程同步
7.3.1 同步是什么
7.3.2 volatile
7.3.3 信号量同步
7.4 线程池
7.4.1 线程池的好处
7.4.2 线程池源码详解
7.5 ThreadLocal
7.5.1 引用类型
7.5.2 ThreadLocal 价值
7.5.3 ThreadLocal 副作用
第8 章 单元测试
8.1 单元测试的基本原则
8.2 单元测试覆盖率
8.3 单元测试编写
8.3.1 JUnit 单元测试框架
8.3.2 命名
8.3.3 断言与假设
第9 章 代码规约
9.1 代码规约的意义
9.2 如何推动落地
9.3 手册纵览
9.4 聊聊成长
《码出高效:Java 开发手册》书名中的“码”既是动词,也是名词,希望我们在“码” 出高效的同时编写出高质量的代“码”。本书从立意到付梓,历时超过两年,期间推翻数次写作思路,历经曲折与艰辛,只希望为时代奉献一本好书,打造中国计算机民族标杆图书。愿这本书能陪伴在众多开发工程师的身边,大家一起进步、一起成长、一起感受编程的魅力。
本书缘起
这本书源于影响了全球250万名开发工程师的《阿里巴巴Java开发手册》(简称《手册》)。2017年2月9日,《手册》以PDF文件的方式正式发布个版本。一经公布,在各大网络平台引发热议,堪称中国人自己原创的Java编程规范,甚至走进硅谷,世界开始听到中国程序员的声音。2017年杭州云栖大会开源此手册配套的扫描插件后,一度攀升至世界,已经有45万名开发工程师直接下载,数以千计的企业进行部分修订后在内部推行。《手册》在研发效能、人才培养与系统稳定性领域都产生了巨大而深远的影响,已经成为重要的开发基础标准文件。
从团队协作角度来说。虽然别人都说开发工程师是搬砖的码农,但我们知道自己是追求个性的艺术家。我们骨子里追求着代码的美、系统的美、设计的美,代码规约其实就是一个对程序美的定义。曾经程序员引以为豪的代码,却因为代码规约的缺失严重制约了相互之间的高效协同,频繁的系统重构和心惊胆战的维护似乎成了工作的主旋律,那么如何走出这种怪圈呢?众所周知,互联网公司的效能是企业的核心竞争力,体现在开发领域上,其实就是沟通效率和研发效率。本书的书名“码出高效”指的就是高效沟通与协作。大雁是一种非常讲究团队配合的鸟类,它们飞翔的队形可以有效地减少空气阻力,所以封面选择大雁作为背景,传递团队沟通与协作的理念,顺利达到共同的目标。
从个人发展角度来说。在计算机编程日益普及的今天,程序员群体日益壮大,本书以初级入门、中级进阶、高级修炼为目标,指导工程师的成长之路。涵盖计算机领域基础知识、面向对象理念、数据结构与集合、高并发多线程、异常和日志以及单元测试等多个方面,讲解由浅入深,囊括了一名开发工程师应具备的基本素质。本书以计算机民族标杆图书为自我要求,追求极致,打磨精品,目的是使读者在计算机综合素质上有大幅的提升。
从系统稳定角度来说。稳定是基础设施的关键目标,也是每个开发工程师考核中的重要指标之一。本书搜集线上的真实故障,经过整理后与相应的知识点结合在一起进行讲解,身临其境,阐述了知其不然的背后逻辑,提出更好的实现方案,终以技术解决技术问题。
本书内容
本书共包括9章,每章的主要内容如下:
第1章从计算机基础知识说起,介绍基础的0与1表示与位运算、字符集、CPU与内存、网络传输与信息安全基础知识,目的是为后文打下知识基座。
第2章走入面向对象的世界,介绍具有划时代意义的编程思想理念,覆写、重载等重要概念含义,类、方法等基础模块规范。
第3章聊聊代码风格,针对命名、代码展示、控制语句和注释等进行分类定义。虽然代码风格不影响程序运行和执行效率,但是对于团队高效协作来说具有重要意义。通过践行本章,读者可以顺其自然地写出可读性强、可维护性好的优雅代码。
第4章揭开Java的神秘面纱,探讨底层JVM核心。从字节码说起,分析类加载的过程,并结合内存布局,讲解对象创建与垃圾回收等知识点。
第5章首先归纳了系统中各类的异常,以及定义各种异常的处理方式,然后定义了日志使用规范,以达到监控运行状况,回溯异常等目的。
第6章是重点章节,以数据结构为基础,引申至集合框架,再到重点集合源码分析,后介绍高并发集合框架,目的是让读者对集合的了解成竹在胸,运用得心应手。尤其是对于集合中使用到的红黑树特性,经过一步步分析,相信使读者不再发怵于树的平衡性与左右旋转。
第7章也是重点章节,走进并发与多线程。由并发与并行等基础概念开始,引申到线程安全,介绍几种常见的锁实现,然后讲解线程同步方案,后扩展到如何正确使用线程池,如何深度解析安全ThreadLocal的安全使用等。目的是让读者深入理解并且安全规范地实现并发编程,得心应手地处理好高并发多线程问题,提高生产效率。
第8章分析了单元测试的重要意义、基本原则、开发规范和评判标准。单元测试的重要意义在于它是一件有情怀、有技术素养、有长期收益的工作,是保证软件质量和效率的重要手段之一。
第9章回归初心,聊聊开发工程师的成长方法论,讲解代码规约的起源与落地方法。虽然这更像一个故事,但是它对于推动项目落地与个人成长具有借鉴意义。
本书特色
本书旁征博引、文风轻松,坚持朴实的平民化写书理念,为方便理解增加了大量生活化的例子,秉持“图胜于表,表胜于言”的理念,紧扣学以致用、学以精进的目标,结合阿里巴巴实践,与底层源码解析融会贯通,深入浅出地把知识立体、客观、丰富地呈现出来。
友情说明一下,本书的示例代码着重于解释知识点的逻辑与使用技巧,简捷明了为主,并非一一规范。当然,有技术追求的读者可以尝试总结全文不符合规范的代码,然后与我们联系,会有奖品回赠。
致谢
后,要感谢在本书编写过程中,所有家人、朋友以及伙伴们的支持与帮助,让作者无后顾之忧地投入到写作中。感谢阿里云业务安全团队、研发效能事业部、AJDK、信息平台事业部、技术线HR、技术战略部、约码项目组、P3C项目组等团队的倾力奉献和所有支持计算机事业发展的开发工程师们。感谢团队各级 Leader 一如既往地支持。感谢各位编委和电子工业出版社博文视点伙伴们的认真付出,你们的积极参与和认真编校保证了图书的顺利出版。
我们一起合作写经济发展的代码,写未来社会发展的每一行代码,码出高效,码出未来。
——马云
稳定是一切基础设施的重中之重,以规范、合理的设计写出更高质量的代码,以技术解决技术问题。
——行癫
写下一行只要1分钟,但未来会被一代代工程师读很多次、改很多次。代码的可读性与可维护性,是我心目中好代码的第1标准。
——鲁肃
大炮728 –
阿里的技术书,尤其是java,必属精品!!赞