《Effective Java》——关于Lambda和Stream

和《Java8实战相比》,很多东西都是重复的。写这篇笔记,一方面是作为回顾总结,另一方面,很多东西这本书换了一个角度去看,对于思考的完整性,依然不可或缺。

哲学上的白马非马其实就是所谓的副作用

其实上一篇的《Java8实战》学习笔记二已经把有些思想上的东西说的很多了,在这就是突然想到一些东西记录一些。
《信息简史》这本书里面说过一个意思“有逻辑的东西一定会有悖论”,程序逻辑一般三种(顺序、条件、循环)。大一开始学程序的时候,就感觉很别扭,想让a等于a+1,自己会先让b=a+1,再a=b,现在想想其实就是心里并没有意识到程序世界里的白马非马问题。a=a+1,一道错误的数学等式,却在程序里司空见惯。命令式编程可能对待它就是个sum指令,但是看成函数来说完全是错误的,a经过了加1映射以后就不可能是等于原来的a了,违反了引用的透明性,有副作用。

继续阅读“《Effective Java》——关于Lambda和Stream”

《Java8实战》学习笔记(一)——关于Lambda和Stream

本来看到《Effective Java》第七章看不太懂,买了这本书,花了一星期看完觉得很好。安利一波,Manning出版社的in action系列真的好。
现在看第二遍,温故知新,并结合动手实现一些书上的代码,去写这篇学习笔记。
本篇为《Java8实战》的Chapter1-7的学习总结。

继续阅读“《Java8实战》学习笔记(一)——关于Lambda和Stream”

虚拟机字节码执行引擎——《深入理解JVM》第8章

虚拟机是相对于物理机的概念,这两种机器都有代码执行能力,但区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上,而虚拟机的执行引擎这是自己实现的,因此可以自行制定指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。
继续阅读“虚拟机字节码执行引擎——《深入理解JVM》第8章”