java在编程语言生态系统中的位置
将Java编译成jvm字节码意味着他成为了互联网的applet首选。
java虚拟机及其字节码可能会变得比Java语言本身更重要。
java也已成功的占领了嵌入式计算的若干领域。从智能卡,烤面包机,机顶盒到汽车制动系统。
流处理
流是一系列数据项,一次只生成一项。程序可以从输入流中一个一个读取数据项,然后以同样的方式将数据项写入输出流。一个程序的输出流很可能是另一个程序的输入流。
比如 cat file1 file2 |tr "[A-Z]" "[a-z]" |sort |tail -3
现在你可以在一个更高的抽象层次上写java8程序了:思路变成了把这样的流变成那样的流。而不是一次只处理一个项目。另一个好处是,java8可以透明地把输入的不相关部分拿到几个CPU内核上去分别执行你的stream操作流水线。
用行为参数化把代码传递给方法
java8中增加的另一个编程概念是通过API来传递代码的能力。
图片发自简书App
并行于共享的可变数据
图片发自简书App
(没有共享的可变数据,将方法和函数及代码传递给其他方法的能力)是我们平常所说的函数式编程范式的基石。与此相反, 在命令式编程范式中,你写的程序则是一系列改变状态的指令。"不能有共享的可变数据"的要求意味着一个方法是可以通过它将参数值转化为结果的方式完全描述的;换句话说,他的行为就像一个数学函数,没有可见的副作用。
java需要演变
图片发自简书App