开篇作者就提出,Java8所做的改变在许多方面比java历史上任何一次改变都深远。而且好消息是,这些改变会让你编辑程序来更容易,再也不用写类似类似于以前的swing中的事件处理函数的啰嗦代码了。
 
   关于多线程,作者也提到,从Java的演变路径来看,他一直致力于让并发编程更容易、出错更少。比如在Java1.0里面有线程和锁的概念,这是当时的最佳实践,但事实证明,不具备专门知识的项目团队,很难可靠地使用这些基本模型。然后在Java 5.0的时候就添加了工业级的构建模块,比如线程池和并发集合。然后到Java7的时候又添加了,分支合并(Fork/Join)框架,使得并行变得更实用,但仍然很困难。所以,到Java8的时候,对并行有了一个更简单的新思路,不过你仍要遵循一些规则。
 
第一节,java怎么还在变?
    Java在编程语言世界中曾经做的不错,但是编程语言生态系统的气候正在变化,程序员越来越多的需要处理所谓的大数据,并希望利用多核计算机和计算机集群来有效的处理,这意味着要使用并行处理,Java以前对此并不支持。所以Java8对程序员的主要好处在于它提供了更多的编程工具和概念,能以更快,更重要的是能以更为简洁、更易于维护的方式解决新的或是现有的编程问题。
   接下来作者介绍了在java8中新增的流处理的概念,这里使用了载有Unix系统中的流式命令作为例子。
   第3小节作者介绍了行为参数化的概念。就是可以把代码或者函数作为参数传递给另外一个方法。
   接下来作者提到了函数式编程范式的两个基石第一,没有共享的可变数据,第二,将方法和函数传递给其他方法的能力
 
第二节,java中的函数
   在基于JVM的Scala和Groovy等语言的实践已经证明,让方法的概念作为一等值可以扩充程序员的工具库,从而让编程变得更简单。在这里,作者给了一个简单的例子来比较用Java8之前 和 之后的代码实现一个隐藏文件筛选的例子来说明函数式编程的优势。
   然后又给了一个,从一堆苹果中筛选出,不同颜色或者不同重量的苹果的例子来说明Lambda和Stream的好处。然后这里就引出了流的内部迭代(这是相对于传统的外部迭代来说的)的概念。在这里,作者提到了集合与流的区别,集合主要是为了存储和访问数据,而流主要是用于描述对数据的计算
 
第四节,默认方法
   开篇作者就提到Java8中加入默认方法主要是为了支持库设计师,让他们能够写出更容易改进的接口。作者用给List接口添加排序方法来说明这个默认方法带来的好处。
   当然,其实我觉得Java8的这种默认方法的概念,可能会把接口搞得不伦不类的,因为在这样的话接口就包含业务逻辑了,那实际上就相当于C++的抽象类。如何避免C++中臭名昭著的多重继承的菱形继承问题呢?据说在第九章有谈到,那我们就拭目以待吧!

读书笔记,《Java8实战》第一章,为什么要关心 Java8的更多相关文章

  1. 学习笔记-[Maven实战]-第一章:Maven简介

    Maven简介: Maven 可翻译为:知识的积累,也可以翻译为"专家"或"内行". Maven 是一个跨平台的项目管理工具,是Apache组织中一个很成功的开 ...

  2. 读书笔记http之第一章

    http TCP/IP协议各层: 应用层 决定了向用户提供应用服务时通信的活动. 比如 : FTP(FileTransferProtocol,文件传输协议)和DNS(DomainNameSystem, ...

  3. Spring实战第一章学习笔记

    Spring实战第一章学习笔记 Java开发的简化 为了降低Java开发的复杂性,Spring采取了以下四种策略: 基于POJO的轻量级和最小侵入性编程: 通过依赖注入和面向接口实现松耦合: 基于切面 ...

  4. 《Android开发艺术探索》读书笔记 (3) 第3章 View的事件体系

    本节和<Android群英传>中的第五章Scroll分析有关系,建议先阅读该章的总结 第3章 View的事件体系 3.1 View基本知识 (1)view的层次结构:ViewGroup也是 ...

  5. SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章)

    SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章) 示例数据库:点我 CHAPTER 08 数据修改 8.1 插入数据 8.1.1 INSERT VALUES 语句 8.1 ...

  6. AngularJS in Action读书笔记6(实战篇)——bug hunting

    这一系列文章感觉写的不好,思维跨度很大,原本是由于与<Angularjs in action>有种相见恨晚而激发要写点读后感之类的文章,但是在翻译或是阐述的时候还是会心有余而力不足,零零总 ...

  7. 《Android开发艺术探索》读书笔记 (13) 第13章 综合技术、第14章 JNI和NDK编程、第15章 Android性能优化

    第13章 综合技术 13.1 使用CrashHandler来获取应用的Crash信息 (1)应用发生Crash在所难免,但是如何采集crash信息以供后续开发处理这类问题呢?利用Thread类的set ...

  8. [读书笔记]项目管理实战:Microsoft Project精髓与方法

    <项目管理实战:Microsoft Project精髓与方法>是Bonnie Biafore 写的一本书.Bonnie Biafore 作为项目管理师(PMP),她有20余年为大中小型客户 ...

  9. 《Android开发艺术探索》读书笔记 (9) 第9章 四大组件的工作过程

    第9章 四大组件的工作过程 9.1 四大组件的运行状态 (1)四大组件中只有BroadcastReceiver既可以在AndroidManifest文件中注册,也可以在代码中注册,其他三个组件都必须在 ...

  10. activiti实战--第一章--认识Activiti

    学习资料:<Activiti实战> 第一章 认识Activiti 内容概览:讲解activiti的特点.接口概览.架构等基本信息. 1.3 Activiti的特点 1.使用mybatis ...

随机推荐

  1. 基于图文界面的蓝牙扫描工具btscanner

    基于图文界面的蓝牙扫描工具btscanner   btscanner是Kali Linux内置的一款蓝牙扫描工具.它提供图文界面,更便于渗透测试人员查看扫描信息.该工具会自动使用主机所有的蓝牙接口,并 ...

  2. nginx命令大全

    sudo nginx #打开 nginx nginx -s reload|reopen|stop|quit #重新加载配置|重启|停止|退出 nginx nginx -t #测试配置是否有语法错误 n ...

  3. BZOJ.4516.[SDOI2016]生成魔咒(后缀数组 RMQ)

    题目链接 后缀自动机做法见这(超好写啊). 后缀数组是可以做的: 本质不同的字符串的个数为 \(子串个数-\sum_{ht[i]}\),即 \(\frac{n(n+1)}{2}-\sum_{ht[i] ...

  4. Linux学习笔记02—磁盘分区

    下面介绍四种最常见的分区方式: (1)    最简单的分区方案. SWAP分区:即交换分区,建议大小是物理内存的1-2倍. /分区:建议大小在6GB以上. 使用以上的分区方案,所有的数据都在/分区上, ...

  5. scrum vs devops vs sre

    DevOps&SRE 超越传统运维之道[北京站] IT大咖说 - 大咖干货,不再错过 http://www.itdks.com/eventlist/detail/908

  6. PDCA管理方法论

    PDCA管理方法论 PDCA管理循环,由日本的高管们在1950年日本科学家和工程师联盟研讨班上学到的戴明环改造而成,最先是由休哈特博士提出来的,由戴明把PDCA发扬光大,并且用到质量领域,故称为质量环 ...

  7. IDA .edata .rdata .idata .text segments

    .rdata is for const data. It is the read only version of the .data segment. .idata holds the import ...

  8. 聚币网API使用教程 demo

    原文 http://30daydo.com/article/181 目前还在完善,等功能完善了,就更新到csdn. 更新 2017-05-27 官方有API的文档,可是这个文档就像一个草稿一样,两个基 ...

  9. 华为正在力挺的NB-IoT是什么鬼! - 全文

    NB-IoT,Niubility Internet of Thing,即牛掰的物联网技术. 关于物联网,小编想从2款很有趣的应用说起. 这不是在播限制级.这是Nake Labs推出的3D健身镜,这款智 ...

  10. 使用newScheduledThreadPool来模拟心跳机制

    (使用newScheduledThreadPool来模拟心跳机制) 1 public class HeartBeat { 2 public static void main(String[] args ...