java8学习:函数注意事项以及概念(结尾)
内容来自《 java8实战 》,本篇文章内容均为非盈利,旨为方便自己查询、总结备份、开源分享。如有侵权请告知,马上删除。书籍购买地址:java8实战 共享的可变数据 假设几个类同时都保存了指向某个列表的引用,由于使用了可变的共享数据结构,我们很难追踪程序中各个组成部分所发生的变化,如图 如果一个系统中不像上面图中表示的可以随意修改数据,它不修改任何数据,这样你就不会再收到任何由于对象修改了数据而导致的错误 如果一个方法既不修改它内嵌类的状态,也不修改其他对象的状态,使用return返回所有的计算结果,那么就可以称其为纯粹的或者无副作用的 那到底哪些因素会造成副作用呢?(副作用就是函数的效果已经超出了函数自身的范围) 处理构造器进行初始化操作,对类中数据结构的任何修改,包含字段的赋值操作setter都是有副作用的 抛出异常是有副作用的 进行输入输出是有副作用的 观察上面,我们不可能不涉及IO,那么java就不可能在一个系统中实现完全的无副作用 无副作用的实现,我们就应该考虑不可变对象.不可变对象只要初始化完成,那么他就不可能有不可预见性,你就可以放心的共享他,无需保留副本并且他不会被修改...