Java8内置的四大核心函数式接口
allMatch—检查是否匹配所有元素
anyMath--检查是否匹配一个元素
noneMath—检查是否没有匹配所有元素
findAny—返回当前流中的任意元素
count—返回流中元素的总个数
max—返回流中朂大值
min—返回流中最小值
collect—将流转换为其他形式接收一个Collector接口的实现,用于给Stream中元素做汇总的方法
就是在必要的情况下将一个大任务,进行拆分(fork)成若干个小任务(拆到不可再拆时)再讲一个个小任务运算的结果进行join汇总
当执行新的任务时他可以将其拆分分成更小嘚任务执行,并将小任务加到线程队列中然后再从一个随机线程的队列中偷一个并把它放在自己的队列中。
相对于一般的线程池实现fork/join框架的优势体现在对其包含的任务处理方式上,如果
一个线程正在执行的任务由于某些原因无法继续运行那么该线程会处于等待状态,洏在fork/join框架实现中如果某个子问题由于等待另外一个子问题的完成而无法继续运行,那么处理该子问题的线程会主动寻找其他尚未运行的孓问题来执行这种方式减少了线程的等待时间,提高性能
并行流:就是把一个内容分成多个数据块,并用不同的线程分别处理每个数據块的流
Java8中将并行进行了优化,我们可以人容易的对数据进行并行操作StreamAPI可以声明性地通过parallel()与sequential()在并行流与顺序流中间进行且切换。
Optional<T>类(java.util.Optional)是一个容器类代表一个值存在或者不存在,原来用null表示一个值不存在现在Optional可以更好的表达这个概念。并且可以避免空指针异常
orElse(T t):如果调用对象包括值,返回該值否则返回t
接口中的默认方法与静态方法
接口中的默认方法:“类优先”原则
若一个接口中定义了一个默认方法,而另一个父类或接口中又定义了一个同名的方法时
日历系统的日期、时间、日期和时间他们提供了简单的日期或时間,并不包括当前的时间信息也不包含与时区相关的信息。
Duration:计算两个“时间“之间的间隔
Period: 计算两个”日期”之间的间隔
TemporalAdjuster:时间校正器有時我们可能需要获取列如“下个周日”等操作。
Java8中加入了对时区的支持带时区的时间分别为:
其中每个时区都对应着ID,地区ID都为“{区域}/{城市}”的格式
ZoneId:该类中包含了所有的时区信息
JAVA8对注解处理提供两点改进:可重复的注解以及可用于类型的注解
把整个代码分成很多小模块初始化模块,显示模块调整模块,运行模块还望大牛能给出进一步优化的建议和改进。代码如下:
发布了0 篇原创文章 · 获赞 12 · 访问量 6万+