具体描述
《写给大忙人看的Java SE 8》向Java开发人员言简意赅地介绍了Java 8 的许多新特性(以及Java 7 中许多未被关注的特性),《写给大忙人看的Java SE 8》延续了《快学Scala》“不废话”的风格。
《写给大忙人看的Java SE 8》共分为9章。第1章讲述了lambda表达式的全部语法;第2章给出了流的完整概述;第3章给出了使用lambda表达式设计库的有效技巧;第4章介绍了JavaFX;第5章详细介绍了Java新增的日期/时间API;第6章介绍了原子计数器、并发哈希映射、并行数组操作等特性中的改进;第7章介绍了如何在Java虚拟机上执行JavaScript,以及如何与Java代码进行交互操作;第8章描述了Java 8中其他一些不起眼但很实用的特性;第9章则关注于Java 7中改进的异常处理,以及其他一些你可能会忽略掉的API。
《写给大忙人看的Java SE 8》适合所有Java程序员、软件设计师、架构师及软件开发爱好者阅读。对于想要快速了解Java SE 8新特性的Java工程师来说,《写给大忙人看的Java SE 8》是一本不可多得的枕边读物。
作者简介
Cay S. Horstmann不仅是Scala for the Impatient(Addison-Wesley于2012年出版)一书的作者,而且是Core Java™, Volumes I and II, Ninth Edition(Prentice Hall于2013年出版)一书的主要作者,他还编写了一系列针对专业编程人员和计算机专业学生的书籍。他是圣荷西州立大学计算机科学专业的一名教授,也是一位Java拥护者。
目录信息
1.1 为什么要使用lambda表达式 2
1.2 lambda表达式的语法 4
1.3 函数式接口 6
1.4 方法引用 8
1.5 构造器引用 10
1.6 变量作用域 10
1.7 默认方法 14
1.8 接口中的静态方法 17
练习 18
第2章 Stream API 20
2.1 从迭代器到Stream操作 22
2.2 创建Stream 23
2.3 filter、map和flatMap方法 25
2.4 提取子流和组合流 26
2.5 有状态的转换 27
2.6 简单的聚合方法 28
2.7 Optional类型 29
2.7.1 使用Optional值 29
2.7.2 创建可选值 30
2.7.3 使用flatMap来组合可选值函数 31
2.8 聚合操作 32
2.9 收集结果 33
2.10 将结果收集到Map中 35
2.11 分组和分片 37
2.12 原始类型流 40
2.13 并行流 42
2.14 函数式接口 44
练习 45
第3章使用lambda编程 48
3.1 延迟执行 50
3.2 lambda表达式的参数 51
3.3 选择一个函数式接口 52
3.4 返回函数 55
3.5 组合 56
3.6 延迟 58
3.7 并行操作 59
3.8 处理异常 60
3.9 lambda表达式和泛型 63
3.10 一元操作 65
练习 67
第4章 JavaFX 72
4.1 Java GUI编程简史 74
4.2 你好,JavaFX! 75
4.3 事件处理 76
4.4 JavaFX属性 77
4.5 绑定 80
4.6 布局 85
4.7 FXML 91
4.8 CSS 95
4.9 动画和特殊效果 97
4.10 不寻常的控件 100
练习 103
第5章新的日期和时间API 106
5.1 时间线 108
5.2 本地日期 110
5.3 日期校正器 113
5.4 本地时间 114
5.5 带时区的时间 115
5.6 格式化和解析 119
5.7 与遗留代码互操作 122
练习 123
第6章并发增强 126
6.1 原子值 128
6.2 ConcurrentHashMap改进 131
6.2.1 更新值 132
6.2.2 批量数据操作 134
6.2.3 Set视图 136
6.3 并行数组操作 137
6.4 可完成的Future 138
6.4.1 Future 138
6.4.2 编写Future 139
6.4.3 Future流水线 139
6.4.4 编写异步操作 141
练习 143
第7章 JavaScript引擎——Nashorn 146
7.1 从命令行运行Nashorn 148
7.2 从Java运行Nashorn 149
7.3 调用方法 150
7.4 构造对象 151
7.5 字符串 153
7.6 数字 153
7.7 使用数组 154
7.8 列表和映射 155
7.9 lambda表达式 156
7.10 继承Java类及实现Java接口 157
7.11 异常 158
7.12 Shell脚本 159
7.12.1 执行Shell命令 159
7.12.2 字符串插值 160
7.12.3 脚本输入 161
7.13 Nashorn和JavaFX 162
练习 164
第8章杂项改进 166
8.1 字符串 168
8.2 数字类 168
8.3 新的数学函数 169
8.4 集合 170
8.4.1 集合类中添加的方法 170
8.4.2 比较器 171
8.4.3 Collections类 173
8.5 使用文件 173
8.5.1 读取文件行的流 173
8.5.2 遍历目录项的流 175
8.5.3 Base64编码 176
8.6 注解 177
8.6.1 可重复的注解 177
8.6.2 可用于类型的注解 179
8.6.3 方法参数反射 181
8.7 其他一些细微的改进 182
8.7.1 Null检查 182
8.7.2 延迟消息 182
8.7.3 正则表达式 183
8.7.4 语言环境 183
8.7.5 JDBC 185
练习 185
第9章你可能错过的Java 7特性 188
9.1 异常处理改进 190
9.1.1 try-with-resources语句 190
9.1.2 忽略异常 191
9.1.3 捕获多个异常 192
9.1.4 更简单地处理反射方法的异常 193
9.2 使用文件 193
9.2.1 Path 194
9.2.2 读取和写入文件 196
9.2.3 创建文件和目录 197
9.2.4 复制、移动和删除文件 198
9.3 实现equals、hashCode和compareTo方法 198
9.3.1 安全的Null值相等测试 198
9.3.2 计算哈希码 199
9.3.3 比较数值类型对象 200
9.4 安全需要 201
9.5 其他改动 204
9.5.1 将字符串转换为数字 204
9.5.2 全局Logger 204
9.5.3 Null检查 205
9.5.4 ProcessBuilder 205
9.5.5 URLClassLoader 206
9.5.6 BitSet 206
练习 207
索引 209
· · · · · · (收起)
读后感
用户评价
**评价一** 一直以来,编程学习的道路上,我都在寻找一本既能深入浅出,又能切实解决我工作实际需求的书籍。市面上充斥着各种教材,有的过于理论化,读起来像在啃字典;有的则过于浅薄, apenas 触及皮毛,根本无法应对复杂的开发场景。偶然间,我发现了这本《写给大忙人看的Java SE 8》,名字本身就极具吸引力——“大忙人”这个标签,仿佛是为我量身定做的。 拿到书后,我立刻被其精炼的排版和清晰的结构所吸引。翻开第一页,就有一种豁然开朗的感觉。作者并没有堆砌晦涩难懂的概念,而是从最基础、最核心的知识点入手,用生动形象的比喻和贴近实际开发场景的例子来讲解。例如,在讲解面向对象编程时,作者没有直接抛出抽象类、接口等术语,而是通过一个模拟真实世界“动物园”的例子,循序渐进地引导读者理解“类”、“对象”、“继承”等概念。这种方式让我觉得编程不再是枯燥的代码堆砌,而是充满了逻辑和创造力的过程。 更让我惊喜的是,书中对Java SE 8的新特性讲解得尤为透彻。Lambda表达式、Stream API这些曾经让我望而却步的特性,在这本书中被拆解得如同剥洋葱一般,层层递进,直到露出最核心的本质。我尤其喜欢书中关于Stream API的部分,它用极其简洁的代码实现了复杂的数据处理逻辑,大大提高了我的开发效率。书中还穿插了大量“小贴士”和“陷阱提示”,这些细节的设计,充分体现了作者对读者学习过程的深刻理解,能够帮助我避免很多常见的错误,少走弯路。总而言之,这本书为我打开了Java SE 8学习的新视角,我迫不及待地想将书中的知识应用到我的实际项目中。
**评价五** 作为一名对技术充满好奇的工程师,我一直致力于在工作中不断学习和精进。Java SE 8的发布,为Java带来了许多令人振奋的新特性,我渴望能够系统地学习并掌握它们,以提升我的开发能力。《写给大忙人看的Java SE 8》这本书,正是满足了我这一需求。 我特别欣赏本书在讲解Java 8新特性时的“先易后难”的策略。它并没有一开始就抛出复杂的语法,而是从一些生活化的例子入手,逐步引导读者理解Lambda表达式的由来和基本用法。当我看到书中用简洁的Lambda表达式替换掉冗长的匿名内部类时,我深深感受到了代码的优雅和效率的提升。随后,书中对Stream API的深入讲解,更是让我惊叹于其强大的数据处理能力。它能够让我用更加声明式的方式来处理集合,从而减少了大量的样板代码,提高了代码的可读性和可维护性。 书中对于函数式编程思想的融入,也给我留下了深刻的印象。它不仅仅是教我如何使用Java 8的新特性,更是引导我理解这些特性背后的设计理念,让我能够更好地运用它们来解决实际问题。例如,在讲解`Optional`类时,作者通过分析NullPointerException的常见场景,清晰地阐述了`Optional`在提升代码健壮性方面的作用。书中还提供了一些关于Java 8在实际项目中的应用案例,这些案例生动地展示了新特性如何解决现实中的开发挑战,让我对这些知识有了更直观的认识。这本书不仅仅是一本技术书籍,更像是一位经验丰富的导师,引导我一步步走向Java SE 8的精通之路。
**评价三** 作为一名刚刚踏入编程世界的初学者,我常常感到迷茫和不知所措。市面上充斥着各种编程书籍,有的内容晦涩难懂,如同天书;有的讲解过于简化,让我无法深入理解。我一直在寻找一本能够引导我入门,并且让我感到编程是有趣、有逻辑的书。《写给大忙人看的Java SE 8》这本书,简直就是为我这样的新人量身打造的。 从书名开始,我就被吸引住了。“大忙人”这个词,让我觉得这本书不会过于冗长,而是会直击要点,帮助我快速掌握核心知识。打开书本,果然不出我所料。作者用一种非常平易近人的语言,把Java SE 8的各种概念解释得非常清楚。比如,在讲到变量和数据类型时,作者用了非常形象的比喻,就像在给不同的容器命名,并往里面放不同种类的数据。这让我一下子就明白了变量的本质,而不是死记硬背那些拗口的术语。 书中对控制流的讲解也让我印象深刻。if语句、for循环这些基础知识,作者通过一些生活中的小例子,比如“如果天晴就出门,否则就在家看书”,让我很快就掌握了逻辑判断的精髓。更让我感到惊喜的是,书中对于面向对象编程的介绍,也没有一开始就抛出复杂的概念,而是从“事物”这个角度出发,引导我理解类和对象的概念,仿佛在搭建一个属于我自己的虚拟世界。而且,每讲完一个知识点,书中都会提供一些小练习题,这让我能够及时巩固所学,并且发现自己理解上的盲点。读这本书,我不再感到编程是枯燥的学习,而是一种充满探索和发现的乐趣。
**评价四** 我从事软件开发工作多年,深知技术更新换代的速度之快。尤其是在Java领域,新版本的特性层出不穷,如果不能及时跟进,很容易被时代抛弃。《写给大忙人看的Java SE 8》这本书,正好是我急需的一本指南。它以一种高效、务实的方式,帮助我快速掌握Java SE 8的关键革新。 本书的一大亮点在于其对Lambda表达式和Stream API的深入剖析。过去,我对这些新特性总是有些望而却步,觉得概念复杂,难以理解。但在这本书中,作者循序渐进地引导我理解其核心思想,并通过大量的代码示例展示了其强大的功能和简洁的语法。我特别喜欢书中关于Stream API的讲解,它将原本复杂的集合操作变得如同流水线一般,清晰明了,极大地提高了我的代码编写效率和可读性。 此外,书中对并发编程的阐述也十分精彩。它不仅仅是罗列了`Thread`和`Runnable`,更是深入到`ExecutorService`、`CompletableFuture`等高级并发工具的使用,并结合实际场景讲解了线程池的配置、任务的调度与管理等关键问题。这对于我处理高并发场景下的应用开发非常有指导意义。书中还提及了一些Java 8中的JVM优化和性能调优的技巧,这些内容对于我提升应用的性能表现,以及解决生产环境中的疑难杂症,提供了宝贵的参考。总而言之,这本书是一本不可多得的Java SE 8实战宝典。
**评价二** 作为一个在IT行业摸爬滚打多年的老兵,我对于学习新知识的态度总是有些审慎。毕竟,时间和精力都是宝贵的,我需要确保投入的时间能够获得最大的回报。当我看到《写给大忙人看的Java SE 8》这本书时,我首先想到的就是它是否能够有效地帮助我快速掌握Java SE 8的核心精髓,而不是浪费大量时间去阅读那些冗余的、我已经掌握的内容。 这本书的开篇,就精准地抓住了“大忙人”的痛点——高效。它并没有花哨的序言,而是直接切入主题,用一种高度概括但又不失严谨的方式,迅速勾勒出Java SE 8的演进脉络和核心优势。我喜欢这种直奔主题的风格,它节省了我宝贵的时间。书中对于语法糖、并发编程等关键技术的讲解,更是让我眼前一亮。它不仅仅是罗列API,而是深入到这些特性背后的设计思想和应用场景,让我能够真正理解“为什么”要这样做,而不是仅仅停留在“怎么做”的层面。 书中对于一些容易混淆的概念,比如`final`关键字的不同用法,或者`==`与`equals()`的区别,都进行了细致入微的辨析。这些看似微小的细节,往往是造成开发中bug的根源,而这本书却能将其清晰地呈现出来,并提供相应的代码示例,让我能够迅速牢固地掌握。此外,书中对项目实践的指导也相当到位,它并没有仅仅停留在理论层面,而是会提示我们在实际开发中如何运用这些知识,如何去优化代码,提升性能。读完之后,我感觉自己的Java功力得到了显著的提升,对于一些复杂的Java问题,也多了几分胸有成竹的自信。
前三章还不错,后面就开始抄API文档了……
花两天补了这个坑,接下来找一些代码来改改,巩固一下知识。节后才能做培训。
lambda学习
应该是给大忙“牛”人写的,不如果本身对于Java的一些特性使用不多的话,会很容易看得云里雾里,因为这不是一本入门书。前三章关于函数式及Stream的介绍知识性比较松散,导致我得又去看O Really的另外两本......
之前一直没法通过零星的知识点理解Lambda,这次算是入门了。 stream看的云里雾里,最后还是上网看教程去了,好在看懂了 JDK7的特性补充还不错 翻译的比较烂……