一、多线程编程

二、流式编程

1、目的

简化集合和数组的操作

注意:每个流只能使用一次

2、获取流的方式

(1)单列集合:stream方法

KeySet()/values()/EntrySet()

(2)数组:Stream的静态方法of

Stream.of(arr)

3、方法分类

(1)延迟方法:返回值是Stream自身类型

(2)终结方法:不返回流自身类型,如count和forEach

4、流中的常用方法

(1)filter

将一个流转换成另一个子集流

Stream<T> filter(Predicate<? super T> predicate);//判断的接口test
Predicate接口中的抽象方法:boolean test()

(2)map

将流中的元素映射到另一个流中

<R> Stream<R> map(Function<? super T, ? extends R> mapper);
java.util.stream.Function 函数式接口,唯一抽象方法apply

(3)limit

对流截取,只取前n个
返回截取后的流

(3)skip

跳过前几个元素,可以使用 skip 方法获取一个截取之后的新流

(4)静态方法:Stream.concat

合并两个流,属于Stream的静态方法

5、进一步简化

函数式接口->Lambda表达式->方法引用

System.out::println

Math::abs

System.out 中的 println 方法来取代Lambda

方法引用的写法复用了已有方案,更加简洁

【书籍知识回顾与总结-2022】Java语言重点知识-多线程编程、流式编程的更多相关文章

  1. Java知识回顾 (4)Java包装类

    一. Java Number 一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte.int.long.double 等. 然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置 ...

  2. Java知识回顾 (18)Java 8、9、11的新特性

    Java 8 Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本. Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 Jav ...

  3. Java基础重点知识之欣欣向然

    题目: 第一题:二重循环: public class Text01 { //完成歌曲排序的效果 public static void main(String[] args) { String[] zi ...

  4. Java虚拟机重点知识归纳总结

    一.     JVM内存分区 分为程序计数器.虚拟机栈.本地方法栈.Java堆.方法区5个区域 其中Java堆和方法区是线程共享的,虚拟机栈.本地方法栈.程序计数器是线程隔离的. 程序计数器: 1.可 ...

  5. Java的lamda表达式/函数式接口/流式计算

    在我们看他人code的时候经常会看到,可能会经常看到lambda表达式,函数式接口,以及流式计算.在刚接触这些新功能时,也觉得真的有必要吗?但是现在写多了,发现这个功能确实能简化代码结构,提升编码效率 ...

  6. java基础知识回顾之javaIO类--java序列化和反序列化

    /** *  * 一:理解序列化反序列化及其应用 * 序列化:把堆内存的对象转化成字节流的过程. * 反序列化:把字节流序列恢复重构成对象的过程. * 对象的序列化的用途:1.把对象的字节序列持久化, ...

  7. Java知识回顾 (2) Java 修饰符

    一.Java 修饰符 1.1 访问控制修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java 支持 4 种不同的访问权限. default (即缺省,什么也不写): 在 ...

  8. JAVA 面试重点知识个人总结

    一.集合: 1 .Collection(是java.util下的接口) 和 Collections(是java.util下的类). 2 .List, Set,是否继承自Collection接口,Map ...

  9. 5.JAVA语言基础部分—多线程

    一个应用有一个进程,一个进程里可以用多个线程 1)定义 定义线程有两种方式,一是继承java.lang.Thread类,二是实现java.lang.Runnable接口.其实Thread类就是实现了R ...

  10. 用java语言(文件和文件流知识点)实现图片的拷贝,从d盘拷贝到e盘

    /** * 实现图片的拷贝\ * 注意:用的是文件字节流 */ package com.test4; import java.io.*; public class Demo12_4 { /** * @ ...

随机推荐

  1. Java安全之Velocity模版注入

    Java安全之Velocity模版注入 Apache Velocity Apache Velocity是一个基于Java的模板引擎,它提供了一个模板语言去引用由Java代码定义的对象.它允许web 页 ...

  2. KVM里安装不是原装的winxp系统镜像

    从网上下载的winxp系统镜像,虽然是iso格式的,但是里面的内容是如下情况的 因此安装的话,需要采取如下步骤 1.添加一个光驱引导,挂载一个iso格式的pe 2.再添加一个光驱,挂载iso格式的wi ...

  3. PostgreSQL 模式(SCHEMA)

    PostgreSQL 模式(SCHEMA)可以看着是一个表的集合. 一个模式可以包含视图.索引.据类型.函数和操作符等. 相同的对象名称可以被用于不同的模式中而不会出现冲突,例如 schema1 和 ...

  4. 如何使用netlify部署vue应用程序

    什么是Netlify? Netlify是一个现代网站自动化系统,其JAM架构代表了现代网站的发展趋势.所谓JAM,就是指基于客户端JavaScript.可重用API和预构建Markup标记语言的三者结 ...

  5. C++面向对象编程之reference

    1.声明 reference 一定要有初值,指针可以不用设初值 2. int& r = x; 表示 r 代表 x, r 用起来就是 x ,而且 reference 设完初值后再也不能代表其他变 ...

  6. python中的多线程与多进程

    线程概念: 线程也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位. 线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其 ...

  7. 【Java】 DirectByteBuffer堆外内存回收

    PhantomReference虚引用 在分析堆外内存回收之前,先了解下PhantomReference虚引用. PhantomReference需要与ReferenceQueue引用队列结合使用,在 ...

  8. Python模拟客户端

    本机客户端 import socket # 获取到socket sk = socket.socket() # 获取到地址 ip 和 端口号 server端的 address = ('127.0.0.1 ...

  9. 分支结构之二:switch-case

    1.格式 switch(表达式){case 常量1: 执行语句1; //break; case 常量2: 执行语句2; //break; ... default: 执行语句n; //break; } ...

  10. 14.MongoDB系列之配置分片

    1. 启动服务器 1.1 启动配置服务器 配置服务器是集群的大脑,保存着关于每个服务器包含哪些数据的所有元数据,因此,必须首先创建配置服务器. 由于资源限制,在同一机器上启动三个进程 # mkdir ...