码出高效:阿里巴巴Java开发手册详解
  • 推荐4
  • 收藏4
  • 浏览2.4K

码出高效:阿里巴巴Java开发手册详解

杨冠宝(孤尽)高海慧(鸣莎)) , 阿里巴巴(中国)有限公司 (作者)  孙学瑛 (责任编辑)

  • 书  号:978-7-121-34909-6
  • 出版日期:2018-10-01
  • 页  数:
  • 开  本:16(170*240)
  • 出版状态:正在印刷
  • 维护人:孙学瑛

相关图书

写给大忙人看的Java SE 9 核心技术

Cay S. Horstmann (作者)

本书是经典著作《Java核心技术》(Core Java)作者Cay S. Horstmann的全新力作,书中以关键的核心技术为着眼点,以全局高度提炼语言精髓,以...

¥128.00

Node.js+MongoDB+Angular Web开发:MEAN全栈权威指南

DAYLEY, BRAD; DAYLEY, BRENDAN; DAYLEY, CALEB (作者) 卢涛 (译者)

Node.js是领先的服务器端编程环境,MongoDB是最受欢迎的NoSQL数据库,而Angular是基于MVC的前端开发的领先框架。它们一起提供了一个易于实现...

 

正则指引(第2版)

余晟 (作者)

本书综合作者自己遇到的实际问题,以及其他开发人员咨询的问题,总结出一套巧妙运用正则表达式的办法,并通过具体的例子指导读者拆解、分析问题。全书分为三部分:第一部分...

 

Java并发编程之美

翟陆续 薛宾田 (作者)

并发编程相比 Java 中其他知识点的学习门槛较高,从而导致很多人望而却步。但无论是职场面试,还是高并发/ 高流量系统的实现,却都离不开并发编程,于是能够真正掌...

 

21天学通C++(第5版)

张启玉 刘刚 (作者)

本书从初学者的角度较全面地介绍了C++的相关知识,较系统地介绍了C++语言的基础内容。本书<br>包括6 篇共21 章的内容。其中,第1 篇是C++数据表达篇,...

¥59.80

Java 9 口袋指南

Robert Liguori;Patricia Liguori (作者) 张卫滨 (译者)

本书以通俗易懂的语言介绍了Java语言的语法、类型、并发编程等基础知识,同时还以样例的形式讲解了Lambda表达式、Java模块系统、JShell这些Java ...

¥49.00
《码出高效:Java 开发手册》源于影响了全球250万名开发工程师的《阿里巴巴Java开发手册》,作者静心沉淀,对Java规约的来龙去脉进行了全面而彻底的内容梳理。本书以实战为中心,以新颖的角度全面阐述面向对象理论,逐步深入地探索怎样成为一位优秀开发工程师。比如:如何驾轻就熟地使用各类集合框架;如何得心应手地处理高并发多线程问题;如何顺其自然地写出可读性强、可维护性好的优雅代码。
本书旁征博引、文风轻松,秉持“图胜于表,表胜于言”的理念,深入浅出地将计算机基础、面向对象思想、JVM探源、数据结构与集合、并发与多线程、单元测试等知识客观、立体地呈现出来。紧扣学以致用、学以精进的目标,结合阿里巴巴实践经验和故障案例,与底层源码解析融会贯通,娓娓道来。
本书以打造民族标杆图书为己任,追求极致,打磨精品,在技术广度和深度上兼具极强的参考性,适合计算机相关行业的管理者和研发人员、高等院校的计算机专业师生等阅读。无论是初学者入门,或是中、高级程序员的进阶提升,本书均为不容置疑的选择。
引爆技术圈,全球瞩目的中国计算机民族图书,中国人自己原创的Java编程规范,希望未来社会发展的每一行代码都规范、合理、高效!马云、行癫、鲁肃亲笔推荐!
杨冠宝
阿里巴巴集团高级技术专家,花名孤尽,取自风清扬“独孤九剑,破尽天下武功”之意。在阿里历任技术研发、架构师、部门主管等不同的角色,承担过双十一、国际化、代码中心等大型项目,有着丰富的一线编程实战和架构经验。目前是集团代码平台负责人,在大数据、高并发、分布式、代码效能等领域均有较深的造诣,乐于分享与总结,在国内外做过多次大型交流和培训,引起强烈共鸣。

高海慧
阿里云资深开发工程师,花名鸣莎。先后在阿里巴巴集团B2B技术部和阿里云任职,承担过商业化、双十一、智能调度及10亿/天的信息采集系统建设等大型项目。在调度匹配、大数据处理和高并发领域具有丰富的实践经验和创新成果。
前言
《码出高效: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 章 计算机基础
2 1.1 走进0 与1 的世界
6 1.2 浮点数
6 1.2.1 科学计数法
7 1.2.2 浮点数表示
9 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 聊聊成长

读者评论

  • 坐等PDF版.

    SnowMan发表于 2018/11/15 17:32:12
  • ThreadPoolExector这个类的构造方法的参数解释有误。文中介绍maximumPoolSize这个参数时,说是当需要的线程数大于这个值就会把需要执行的任务扔到队列中。但是在后续的源代码中的逻辑不是这样的,是当需要执行的任务大于核心线程数时会把任务扔到队列中,当需要执行的任务放不进队列,再根据maximumPoolSize来判断是否要再生产线程来出来任务。

    wchappygood发表于 2018/11/12 15:36:09