【Java面试系列】JDK 1.8 新特性之 Stream API PDF 下载
发布于:2024-04-28 10:27:08
(假如点击没反应,多刷新两次就OK!)
资料内容:
一、Stream 简介
Java 8 引入了全新的Stream API,这里的Stream 和I/O 流不同,它更像具有Iterable 的集合类,但行为和集合类又有所不同。
Stream 是Java 8 的新特性,是对容器对象功能的增强,它专注于对容器对象进行各种非常便利、高效的聚合操作(aggregate operation)或者大批量数据操作。
Stream 是用函数式编程方式在集合类上进行复杂操作的工具,开发者可以更容易地使用Lambda 表达式,并且更方便地实现对集合的查找、遍历、过滤以及常见计算等。
同时,它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用fork/join 并行方式来拆分任务和加速处理过程。
所以说,Java 8 中首次出现的java.util.stream 是一个函数式语言+多核时代综合影响的产物。
二、Stream 特点:
(1)Stream 流是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列;
(2)Stream 相当于高级版的Iterator;
(3)Stream 的聚合操作与数据库SQL 的聚合操作sorted、filter、map 等非常类似;
(4)Stream 是对容器对象功能的增强,它专注于对容器对象进行各种非常便利、高效的 聚合操作(aggregate operation)或者大批量数据操作;
(5)Stream 是用函数式编程方式在集合类上进行复杂操作的工具,其集成了Java 8中的众多新特性之一的聚合操作,开发者可以更容易地使用Lambda表达式,并且更方便地实现对集合的查找、遍历、过滤以及常见计算等;
(6)在数据操作方面,Stream 不仅可以通过串行的方式实现数据操作,还可以通过并行的方式处理大批量数据,提高处理效率;
Stream 注意点:
(1)Stream 不会自己存储数据。
(2)Stream 不会改变原对象,他们会返回一个新的Stream。
(3)Stream 操作是延迟的,他们会等到需要的结果时才执行。
(4)用并行流并不一定会提高效率,因为jvm 对数据进行切片和切换线程也是需要时间的。
1、什么是聚合操作
在传统的J2EE 应用中,Java 代码就必须依赖于关系型数据库的聚合操作来完成诸如客户每月平均消费金额、最昂贵的在售商品、本周完成的有效订单(排除了无效的)以及取十个数据样本作为首页推荐等需求。但在当今这个数据大爆炸的时
代,在数据来源多样化、数据海量化的今天,很多时候不得不脱离RDBMS,或者以底层返回的数据为基础进行更上层的数据统计。
而Java 的集合API 中,仅仅有极少量的辅助型方法,更多的时候是程序员需要用Iterator 来遍历集合,完成相关的聚合应用逻辑,这是一种远不够高效、笨拙的方法。而在Java 8 使用Stream,代码更加简洁易读;而且使用并发模式,程序执
行速度更快。
2、Stream 流
1、什么是流
1、Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的Iterator。原始版本的Iterator,用户只能显式地一个一个遍历元素并对其执行某些操作;高级版本的Stream,用户只要给出需要对其包
含的元素执行什么操作,比如,“过滤掉长度大于10 的字符串”、“获取每个字符串的首字母”等,Stream 会隐式地在内部进行遍历,做出相应的数据转换。Stream 就如同一个迭代器(Iterator),单向不可往复,数据只能遍历一次,遍历过一次
后即用尽了,就好比流水从面前流过,一去不复返。
2、而和迭代器又不同的是,Stream 可以并行化操作,迭代器只能命令式地、串行化操作。顾名思义,当使用串行方式去遍历时,每个item 读完后再读下一个item。而使用并行去遍历时,数据会被分片成多个段,其中每一个都在不同的线程中
处理,然后将结果一起输出。Stream 的并行操作依赖于Java 7 中引入的Fork/Join 框架(JSR166y)来拆分任务和加速处理过程。
3、Stream 的另外一大特点是,数据源本身可以是无限的。
热门帖子推荐
- 1.IDEA 2020-2024版本永久激活 教程
- 2.IDEA 2021-2023版本永久激活 教程
- 3.【免费,亲测可用】IDEA激活码2024
- 4.SpringBoot + SpringSecurity+Vue权限系统 视频教程 下载 (超级火爆)
- 5.安排,阿里巴巴 Java 性能调优 手册PDF
- 6.阿里首推的 Java高并发编程手册(第二版) PDF,震撼发布!
- 7.海量Java开发视频教程资源,免费送VIP下载权限
- 8.超15万人学习,高赞的 SpringBoot微信小程序电商系统视频教程,强到起飞!
- 9.2023版SpringCloud企业级项目商城系统 131讲 视频教程 下载
- 10.2023版 Java岗面试核心MCA版 1658页 PDF 下载
相关帖子推荐
- 1.前端面试题基础 PDF 下载
- 2.蚂蚁科技 移动开发平台 前端框架与 UI 组件 使用指南 PDF 下载
- 3.阿里web前端开发规范.pdf(共27页,含示例代码) PDF 下载
- 4.Vue.js 3 Cookbook PDF 下载
- 5.Node.js爬虫开发全网内容抓取平台 视频教程 下载
- 6.SQL Server详解 PDF 下载
- 7.Oracle Java SE Universal Subscription- Protect Your Investment in Java SE PDF 下载
- 8.MyBatis:SQL映射框架的深度探索 PDF 下载
- 9.Git特性及常用命令详解 PDF 下载
- 10.Vue.js 3 By Example PDF 下载