今天大概看了一眼《Java 8实战》这本书的概要,从中学到了一些新东西,欣慰的是大概内容都能看懂,接下来说说我的感受,哪儿有不对的地方希望指出,在这里先谢谢了。
1、为啥要学java8
日新月异的计算应用背景:多核和处理大型数据集,平常我们用的cpu都是多核的-----你的笔记本电脑或台式机上处理器可能有四个cpu内核,甚至更多。但是,绝大多数现有的java程序都只是用其中一个内核,其他三个都闲着,或只是用一小部分能力运行操作系统或杀毒程序。在java8以前,专家可能会告诉你,必须使用线程才能使用多个内核,问题是,线程用起来很难,也容易出现错误。而java8提供了一个新的API(称为“流”,Stream),他支持许多处理数据的并行操作。
先抢占市场往往能够吓退竞争对手。为了一个功能而改用新的语言和工具往往太过痛苦了,担新来着最终会取代现有的语言,除非后者演变的够快,能更上节奏。
总结起来就是,语言需要不断改进以跟进硬件的更新或满足程序员的期待。
2、流处理
流是一系列数据项,一次只生成一项。程序可以从输入流中一个一个读取数据项,然后以同样的方式将数据项写入输出流。一个程序的输出流很可能是另一个程序的输入流。
3、用行为参数化把代码传递下去
4、并行与共享的可变数据
讨论流处理能力时说的“几乎免费的并行”,你需要放弃什么?一般情况下,你写代码不能访问共享的可变数据,这些函数有时被我们称为“纯函数”或“无副作用函数”或“无状态函数”。
没有共享的可变数据,将方法和函数即代码传递给其他方法的能力 这两要点是我们平成所说的函数式编程范式的基石。“不能有共享的可变数据”的要求意味着,一个方法是可以通过它将参数值转换为结果的方式完全描述的,换句话说,他的行为就像是一个数学函数,没有可见的副作用。
以上是我学到的内容,有些话是采用人家的语句。
参考地址:https://book.douban.com/reading/37581013/