JAVA 新特性
一、JAVA8新特性lambda表达式 ()->{ return 5;}
二、方法引用,将方法作为参数传入: foreach(System.out::printLn)
三、函数式接口
@FunctionalInterface
interface GreetingService
{
void sayMessage(String message);
}
GreetingService greetService1 = message -> System.out.println("Hello " + message);
四、 Base64 编码
五、新的日期函数 Java.time 包中
LocalTime 本地时间
ZonedDateTime 时区时间
六:Stream http://www.runoob.com/java/java8-streams.html
Stream(流)是一个来自数据源的元素队列并支持聚合操作
- <strong元素队列< strong="">元素是特定类型的对象,形成一个队列。 Java中的Stream并不会存储元素,而是按需计算。
- 数据源 流的来源。 可以是集合,数组,I/O channel, 产生器generator 等。
- 聚合操作 类似SQL语句一样的操作, 比如filter, map, reduce, find, match, sorted等。
和以前的Collection操作不同, Stream操作还有两个基础的特征:
- Pipelining: 中间操作都会返回流对象本身。 这样多个操作可以串联成一个管道, 如同流式风格(fluent style)。 这样做可以对操作进行优化, 比如延迟执行(laziness)和短路( short-circuiting)。
- 内部迭代: 以前对集合遍历都是通过Iterator或者For-Each的方式, 显式的在集合外部进行迭代, 这叫做外部迭代。 Stream提供了内部迭代的方式, 通过访问者模式(Visitor)实现
Stream针对中间过程采用责任连的方式进行处理。Stream针对于中间有状态在end之后,收集完成后才调用下一个责任对象处理。Stream整个处理过程只有一种并行处理状态,最后一个并行处理状态将会覆盖之前的。
Streasm主要采用责任链,命令模式实现处理过程流程化处理。
七: Optional 允许为Null类
八:JAVA中的JUC包:java.util.concurrent包。并发使用包
原子操作,Automic操作,底层使用Volite进行可见性修饰,CAS进行原子性操作 。
锁:JDK层次提供可重入的互斥锁,信号量,回环栅栏多线程同步操作
线程安全操作类,阻塞队列,线程池,ThreadLocal(线程本地变量) ,InheritableThreadLocal(父子线程之间传递线程本地变量)
九:应用开发过程中的SIMD使用(Single Instruction, Multiple Data (SIMD))
JAVA程序使用SIMD
https://zhuanlan.zhihu.com/p/157819714
https://software.intel.com/content/www/us/en/develop/articles/vector-api-developer-program-for-java.html
数据的ETL工具:
https://blog.csdn.net/LXWalaz1s1s/article/details/94024979
JAVA中的数学运算:
StrictMath(建议使用),Math(不建议使用),FastMath(apach.common,说明是比StrictMath支持更多,更快)
Apatch Common中统计介绍: https://blog.csdn.net/antony1776/article/details/98760251
关于数据统计:https://blog.csdn.net/antony1776/article/details/98760251
JAVA中常用的工具集:
Hutool工具包:https://www.hutool.cn/
Apache Common工具包:http://commons.apache.org/