这本书是一本关于函数式编程的实用指南,特别适合那些已经对Java编程有一定了解的程序员。书中从基础开始,深入浅出地介绍了函数式编程的思维方式,并提供了丰富的实例和案例来帮助读者更好地理解和应用这种编程范式。无论是对Java8新特性的探索,还是对函数式编程概念的深入剖析,这本书都给予了详细而全面的讲解。如果你想在Java编程中引入函数式编程的理念,这本书绝对是你不可或缺的指南。快来下载吧!
读者评价
主题是函数式编程,用Java语言描述。包含:FP思维、FP基础类库的讲解,偏重思想和基础。有了思维和基础,实际的实践和应用就会举重若轻。讲解得平实、循序渐进,所以书有点厚500面。基于Java语言描述、手把手的构建FP的基础运行时结构,极大地降低了深入理解FP的门槛和难度。
很好的库设计教学,虽然在java里面用函数式编程范式写库无异于戴着镣铐跳舞,语言的使用不是求职者自己能够决定的。
真正能把函数式编程思维运用到java生产中好书,不过没有进一步深入解释monad
内容介绍
《Java函数式编程》并不是一本关于Java的书,而是一本关于函数式编程的书。作者由浅入深地介绍了函数式编程的思维方式,并引导读者通过易于掌握的例子、练习和图表来学习和巩固函数式编程的基本原则和最佳实践。读者甚至可以在阅读的同时编写出自己的函数式类库!
目录
- 第1章 什么是函数式编程 1
- 第2章 在Java中使用函数 17
- 第3章 让Java更加函数式 63
- 第4章 递归、反递归和记忆化 104
- 第5章 用列表处理数据 138
- 第6章 处理可选数据 168
- 第7章 处理错误和异常 197
- 第8章 列表处理进阶 228
- 第9章 使用惰性 259
- 第10章 用树进行更多数据处理 289
- 第11章 用高级树来解决真实问题 325
- 第12章 用函数式的方式处理状态改变 359
- 第13章 函数式输入/输出 382
- 第14章 通过actor共享可变状态 414
- 第15章 以函数式的方式解决常见问题 440
- 附录A 使用Java 8的函数式特性 471
- 附录B Monad 479
- 附录C 敢问路在何方 485
程只是一个静态的概念,机器上的一个.class文件,机器上的一个.exe文件,这个叫做一个进程。程序的执行过程都是这样的:首先把程序的代码放到内存的代码区里面,代码放到代码区后并没有马上开始执行,但这时候说明了一个进程准备开始,进程已经产生了,但还没有开始执行,这就是进程,所以进程其实是一个静态的概念,它本身就不能动。平常所说的进程的执行指的是进程里面主线程开始执行了,也就是main()方法开始执行了。进程是一个静态的概念,在我们机器里面实际上运行的都是线程。 Windows操作系统是支持多线程的,它可以同时执行很多个线程,也支持多进程,因此Windows操作系统是支持多线程多进程的操作系统。Linux和Uinux也是支持多线程和多进程的操作系统。DOS就不是支持多线程和多进程了,它只支持单进程,在同一个时间点只能有一个进程在执行,这就叫单线程。 CPU难道真的很神通广大,能够同时执行那么多程序吗?不是的,CPU的执行是这样的:CPU的速度很快,一秒钟可以算好几亿次,因此CPU把自己的时间分成一个个小时间片,我这个时间片执行你一会,下一个时间片执行他一会,再下一个时间片又执行其他人一会,虽然有几十个线程,但一样可以在很短的时间内把他们通通都执行一遍,但对我们人来说,CPU的执行速度太快了,因此看起来就像是在同时执行一样,但实际上在一个时间点上,CPU只有一个线程在运行。 学习线程首先要理清楚三个概念: 进程:进程是一个静态的概念 线程:一个进程里面有一个主线程叫main()方法,是一个程序里面的,一个进程里面不同的执行路径。 在同一个时间点上,一个CPU只能支持一个线程在执行。因为CPU运行的速度很快,因此我们看起来的感觉就像是多线程一样。 什么才是真正的多线程?如果你的机器是双CPU,或者是双核,这确确实实是多线程。
关于动态加载机制 学习Java比C++更容易理解OOP的思想,毕竟C++还混合了不少面向过程的成分。很多人都能背出来Java语言的特点,所谓的动态加载机制等等。当然概念往往是先记住而后消化的,可有多少人真正去体会过动态加载的机制,试图去寻找过其中的细节呢? 提供大家一个方法: 在命令行窗口运行Java程序的时候,加上这个很有用的参数: java –verbose *.class 这样会清晰的打印出被加载的类文件,大部分是jdk自身运行需要的,最后几行会明显的看到自己用到的那几个类文件被加载进来的顺序。即使你声明了一个类对象,不实例化也不会加载,说明只有真正用到那个类的实例即对象的时候,才会执行加载。这样是不是大家稍微能明白一点动态加载了呢?