一java8新特性总结
1 时间日期API
Local Time 时间;
Local Date 日期;
Local DateTime 时间日期;
2 哈希表底层结构
哈希表:
1.7前:数组+链表
1.8后:数组+链表+红黑树
3 接口中新增的带有方法体的方法
静态方法
默认方法
4 Lambda表达式
()->{}
前提:函数式接口:
1只有一个抽象方法的接口
2可以用@functionalInterface强制检测
5 方法引用
简化lambda表达式
不是所有lambda都能使用方法引用简化
前提 :
1)lambda体是通过调用另外一个方法实现的
2)参数列表与返回值一一对应|返回值对应,lambda的第一个参数作为调用内部方法的对象,第二个参数开始匹配调用方法的参数列表
6 Stream流
是数据渠道,对数据源产生的元素序列进行运算的渠道,可以对数据进行流式运算
使用步骤 :
1.获取Stream流
Collection–>stream()
Arrays.stream()
Stream.of(…)
2.中间操作
过滤 : filter
筛选 limit skip distinct
映射 map
排序 sorted
3.终止行为
查找
匹配
遍历
规约 reduce
收集 collect
二 多线程
线程 : 程序执行中的执行顺序流
多线程 : 多任务执行,多路径执行,多个顺序流同时执行就是多线程
线程 与 进程 :
进程 :
1.系统中的程序,一个进程中包含1~n个线程
2. 每个进程都用于独立的代码与数据空间
3. 进程切换开销较大
4. 进程是资源分配的最小单位
线程 :
1轻量级的进程
2多个线程共享进程的资源,每个线程都用于独立的运行站与程序计数器,线程之间互不影响
3线程之间切换开销小,线程的切换不由程序猿控制,只有cpu说了算
4 线程是cpu调度的最小单位
学习线程的内容 :
1.创建开启线程的方式 *****
1.继承Thread类,重写run方法 + start开启线程
2.实现Runnable接口,重写run方法 + start开启 - > 推荐
优点 : 接口可以多实现
可以实现资源共享
3.实现juc包下Callable接口,重写call方法 + 线程池开启线程 --> 了解
2.线程状态
3.线程安全问题 ****
4.线程通信