Java8-4-Stream API
Stream API 提供了一种高效且易于使用的处理数据的方式, Java 8 的 Stream 使用函数式编程模式,可以用来对集合或数组进行链状流式的操作
概述
Stream
Stream 是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。
Stream 自己 不会存储元素。
Stream 不会改变源对象。相反,他们会返回一个持有结果的新 Stream
Stream 操作是延迟执行的。这意味着他们会等到需要结果的时候才执行
操作创建操作一个数据源(如:集合、数组),获取一个流
获取流
方法
说明
default Stream stream()
返回一个顺序流
default Stream parallelStream()
返回一个并行流
数组创建流
Java8 中的 Arrays 的静态方法 stream() 可以获取数组流
方法
说明
static<T> Stream<T> stream(T[] array)
返回一个流
数组:Arrays.stream(数 ...
Java8-3-方法引用与构造器引用
方法引用使用 lambda 表达式时,如果方法中 只有一个方法的调用 话(包括构造方法),可以使用方法引用进一步简化代码, 使用操作符 :: 将 方法名和对象或类的名字分隔 开来。
主要使用情况:
对象::实例方法
类::静态方法
类::实例方法
引用对象的实例方法
基本语法
1对象名::方法名
使用前提
如果在重写方法时,方法体中 只有一行代码,并且该代码是 调用某对象的成员方法,并且要把重写的 抽象方法中所有的参数按照顺序传入该成员方法中,使用引用对象的实例方法
1234567891011// 使用lambda表达式StringBuilder sb = new StringBuilder();authors.stream() .map(author->author.getName()) .forEach(name->sb.append(name));// 使用方法引用StringBuilder sb = new StringBuilder();authors.stream() .map(author-&g ...
Java8-2-函数式接口
概述 仅含有一个抽象方法 的接口称之为函数式接口,JDK中的函数式接口都加上 @FunctionalInterface 注解标识
Java 内置四大核心函数式接口
函数式接口
参数类型
返回类型
用途
Consumer 消费型接口
T
void
对类型为 T 的对象应用操作,包含方法: void accept(T t)
Supplier 供给型接口
无
T
返回类型为 T 的对象,包含方法:T get()
Function 函数型接口
T
R
对类型为 T 的对象应用操作,并返回结果。结果是 R 类型的对象。包含方法:R apply(T t)
Predicate 断定型接口
T
boolean
确定类型为 T 的对象是否满足某约束,并返回 boolean 值。包含方法 boolean test(T t)
Consumer 消费接口
根据其中抽象方法的参数列表和返回值类型,在方法中传入参数进行消费
123456@FunctionalInterfacepublic interface Consumer<T> { vo ...
Java8-1-Lambda Expression
面向对象编程是对数据进行抽象;函数式编程是对行为进行抽象。
核心思想:使用不可变值和函数,函数对一个值进行处理,映射成另一个值。
lambda 表达式仅能放入如下代码:
预定义使用了 @Functional 注解的函数式接口,自带一个抽象函数的方法
Single Abstract Method,单个抽象方法类型
这些称为 lambda 表达式的目标类型,可以用作返回类型,或 lambda 目标代码的参数。
若一个方法接收 Runnable、Comparable 或者 Callable 接口,都有 单个抽象方法,可以传入lambda表达式。
类似的,如果 一个方法接受声明于 java.util.function 包内的接口,例如 Predicate、Function、Consumer 或 Supplier,那么可以向其传 lambda 表达式。
基本格式1{params}->{code}
案例1
1234567891011new Thread(new Runnable() { pubic void run() ...
JavaBasic-11-网络编程
网络编程三要素
IP地址:设备在网络中的唯一标识
IPv4,32位的IP地址,常用点分十进制方便书写
IPv6,128位的IP地址,常用冒分十六进制方便书写
常用命令,在cmd中可以用ipcofig查看本机IP地址,用ping IP地址/域名可以检测当前与某个设备是否可以连通
特殊的IP地址:127.0.0.1称为回送地址又叫本地回环地址,可以代表本机IP地址,一般用作测试
inetAddress类
不提供构造方法,可以通过提供的一些静态方法获取一个对象,这些静态方法需要传入主机名或IP地址
常用方法有String getHostName()和String getHostAddress()分别获取主机名和IP地址
端口号:应用程序在设备中唯一标识
两个字节表示的整数,范围时0~65535
其中0~1023之间的端口号用于知名网络服务或应用,自用的需要在1024以上
注意一个端口号只能被一个应用程序使用
协议:数据在传输过程中遵守的规则
UDP,用户数据报协议,面向无连接的通信协议,速度快一次最多发送64K的数据,数据不安全易丢失
TCP,传输控制协议,面向连接的通信协议 ...
JavaBasic-10-反射
反射机制
基本介绍
反射机制允许程序在执行期借助⼦Reflection API 取得任何类的内部信息(比如成员变量,构造器,成员⽅法等),并能操作对象的属性及⽅法
加载完类之后,在堆中就产⽣了⼀个Class类型的对象(⼀个类只有⼀个Class对象),这个对象包含了类的完整结构信息。通过这个对象得到类的结构。这个对象就像⼀⾯镜⼦,透过这个镜⼦看到类的结构,所以,形象的称之为:反射
反射相关类
类
说明
java.lang.Class
代表⼀个类,Class对象表示某个类加载后在堆中的对象
java.lang.reflect.Method
代表该类的⽅法
java.lang.reflect.Field
代表类的成员变量
java.lang.reflect.Constructor
代表类的构造⽅法
案例
读写配置文件
1234567Properties properties = new Properties();properties.load(new FileInputStream("src\\re.properties" ...










