读书笔记,《Java8实战》第一章,为什么要关心 Java8
2017-02-12 09:20
295 查看
开篇作者就提出,Java8所做的改变在许多方面比java历史上任何一次改变都深远。而且好消息是,这些改变会让你编辑程序来更容易,再也不用写类似类似于以前的swing中的事件处理函数的啰嗦代码了。 关于多线程,作者也提到,从Java的演变路径来看,他一直致力于让并发编程更容易、出错更少。比如在Java1.0里面有线程和锁的概念,这是当时的最佳实践,但事实证明,不具备专门知识的项目团队,很难可靠地使用这些基本模型。然后在Java 5.0的时候就添加了工业级的构建模块,比如线程池和并发集合。然后到Java7的时候又添加了,分支合并(Fork/Join)框架,使得并行变得更实用,但仍然很困难。所以,到Java8的时候,对并行有了一个更简单的新思路,不过你仍要遵循一些规则。 第一节,java怎么还在变? Java在编程语言世界中曾经做的不错,但是编程语言生态系统的气候正在变化,程序员越来越多的需要处理所谓的大数据,并希望利用多核计算机和计算机集群来有效的处理,这意味着要使用并行处理,Java以前对此并不支持。所以Java8对程序员的主要好处在于它提供了更多的编程工具和概念,能以更快,更重要的是能以更为简洁、更易于维护的方式解决新的或是现有的编程问题。 接下来作者介绍了在java8中新增的流处理的概念,这里使用了载有Unix系统中的流式命令作为例子。 第3小节作者介绍了行为参数化的概念。就是可以把代码或者函数作为参数传递给另外一个方法。 接下来作者提到了函数式编程范式的两个基石,第一,没有共享的可变数据,第二,将方法和函数传递给其他方法的能力。 第二节,java中的函数 在基于JVM的Scala和Groovy等语言的实践已经证明,让方法的概念作为一等值可以扩充程序员的工具库,从而让编程变得更简单。在这里,作者给了一个简单的例子来比较用Java8之前 和 之后的代码实现一个隐藏文件筛选的例子来说明函数式编程的优势。 然后又给了一个,从一堆苹果中筛选出,不同颜色或者不同重量的苹果的例子来说明Lambda和Stream的好处。然后这里就引出了流的内部迭代(这是相对于传统的外部迭代来说的)的概念。在这里,作者提到了集合与流的区别,集合主要是为了存储和访问数据,而流主要是用于描述对数据的计算。 第四节,默认方法 开篇作者就提到Java8中加入默认方法主要是为了支持库设计师,让他们能够写出更容易改进的接口。作者用给List接口添加排序方法来说明这个默认方法带来的好处。 当然,其实我觉得Java8的这种默认方法的概念,可能会把接口搞得不伦不类的,因为在这样的话接口就包含业务逻辑了,那实际上就相当于C++的抽象类。如何避免C++中臭名昭著的多重继承的菱形继承问题呢?据说在第九章有谈到,那我们就拭目以待吧!
来自为知笔记(Wiz)
来自为知笔记(Wiz)
相关文章推荐
- 第一章 项目管理简史(你为什么应该关心这些事情) (转自moneyice)
- 孙鑫java读书笔记--第一章
- 为什么要关心Java8
- Thinking in Java第三版读书笔记-第一章:对象简介
- Java编程思想-第一章 1.5-1.8读书笔记
- 【笔记】Java核心技术 卷1 基础知识 第一章 读书笔记
- 什么是异常,我们为什么要关心它--The Java Tutorial--Exception第一节
- Netty In Action 读书笔记 - 第一章 Netty和Java NIO API
- Java 线程第三版 第一章Thread导论、 第二章Thread的创建与管理读书笔记
- Thinking in Java 读书笔记 第一章 对象导论
- 关于Java变量、数组、对象的声明、初始化与访问方式-----《疯狂Java突破程序员基本功的16课》读书笔记----第一章
- 什么是异常,我们为什么要关心它--The Java Tutorial--Exception第一节
- Java 线程第三版 第一章Thread导论、 第二章Thread的创建与管理读书笔记
- 《Thinking in JAVA》读书笔记_第一章_1.1
- 《大象Tinking in UML》读书笔记 —— 第一章 为什么需要UML
- 《Java 8 in Action》-1 第1章 为什么要关心Java 8
- Java 并发编程实践基础 读书笔记: 第一章 JAVA并发编程实践基础
- 《深入理解Java虚拟机》读书笔记---第一章 走进Java
- 《Thinking in JAVA》读书笔记_第一章_1.2~1.3
- Java 程序设计语言(第四版)读书笔记 第一章 快速浏览