# 字节流
**字节流祖宗类:**InputStream,这个类是个抽象类
**字节流的作用:**用于对象的传输和视频音乐这类字节文件的流化传输
## 字节输入流:
**类:**FileInputStream
**解释:**从文件输入字节,读出到程序
**步骤1:**创建输入流对象,需要抛出异常:throws FileNotFoundException
**格式1:**FileInputStream ins = new FileInputStream("文件路- 阅读剩余部分 -
# 字符流
**字符流的祖宗类:**
字符输入流:Reader
字符输出流:Writer
**字符输入流:**
```java
1. FileReader:从磁盘文件中读取字符,一次只能读取一个整型或一个字符数组
2. BufferedReader:逐行的读取文本字符串,效率比FileReader高
```
**字符输出流:**
```java
1. FileWriter:向磁盘文件中写入字符或字符串
2. BufferedWriter:逐- 阅读剩余部分 -
## 最基础的集合:类数组
**优点:**包含了集合** "**可以存储任何类型的数据" 的优点。
**缺点:**包含了数组 "无法动态修改" 的缺点。
## 基本类数组:
**格式:**
Object\[] 数组名 = {类类型1,类类型2....} //如果类数组中只包含共同类的对象,则Object可换成该类
**实例:**
不可以重复必须唯一,所以键名一般为身份证或者其它唯一编号,键值(value)可以重复 3.存放的数据无序,没有索引
**HashMap:**
特点:底层是哈希表,无序存储
模块:import java.util.HashMap;
格式:Map 集合名 = new HashMap ();
**增加元素:**集合名.put(键名, 键值) //键名与键值需要和泛型相对应
- 阅读剩余部分 -
**集合类:**
**集合的祖宗类是Collection接口,Collection下分为List接口和Set接口**
**List:**
**特点:**1.是有序的(储顺序根据存储代码顺序而定) 2.里面可以存放重复的元素
List可以直接进行初始化: List 集合名 = Arrays.asList(元素1, 元素2...);
**ArrayList:**实现List接口
特点: 底层是数组,查询快但增删改较慢。
模块: import java- 阅读剩余部分 -
**Set:**
**特点:**1.是无序的,没有下标(索引),所以没有插入元素(add)、修改元素(set)、查询元素(get)的方法 2.数据不可重复(出现重复数据不会报错,只会留下一组数据。适合存储网卡、身份证这类唯一的数据)
**HashSet:**实现Set接口
特点:只有在存储Integer时会按数字顺序排序
模块:import java.util.ArrayList;
格式:HashSet 集合名 = new HashSet(); 或 - 阅读剩余部分 -
# Stream API
**Stream介绍:**Stream(流)是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列,是对集合(Collection)对象功能的增强,专注于对集合对象进行各种便利高效的聚合操作。
**Stream的特性:**
\1. 不是数据结构,没有内部存储。
\2. 不支持索引访问:流中的对象不支持索引访问
\3. 延迟计算:流的中间操作是延迟计算的,只有进行终止操作才能进行中间操作
\4. 支持并行:流对其中元素的操作可以是多- 阅读剩余部分 -
# Lambda
**介绍:**Lambda表达式是对象,是一个函数式接口的实例,所以Lambda表达式的使用场景是任何有函数式接口的地方。
**Lambda表达式的特点:**
1.函数时编程
2.参数类型自动推断
3.代码量少,简洁
**定义格式:**
函数式接口 对象 = (参数列表) -> {逻辑体};
**注意:**
\1. 如果逻辑体的逻辑非常简单,如只有一行代码,则可以省略大括号与return
\2. 参数列表中的参数个数与参数类- 阅读剩余部分 -



**注意:**函数式接口传入的参数是给接口中的抽象方法传的,逻辑体中的方法是用来返回值的,接口传入的所有输入的泛型参数不需要在逻辑体的方法中全用到,但是接口传入的输出的泛型参数要在逻辑体的方法中返回。注意方法的引用是"引用"不是“执行",在创建lambda象时并不会执行该方法。

**JDK1.8之前的官方函数式接口:**
**1. java.lang.Runnable** **//没有输入与输出,抽象方法: run()**
**2. java.util.concurrent.Callable** **//代表一个输出,抽象方法: call()**
**3. java.util.Comparator //代表两个输入一个输出(两个输- 阅读剩余部分 -