第16天打卡
1,今天大量练习了Stream流的书写方式,越发感到它的强大,首先创建流,进行一系列的中间操作,在通过终结操作得到结果。
2,常用的中间操作,map映射,对流中的元素一一进行操作后得到结果,结果可以是值,也可以是流,最后将结果汇成一整个流返回,即流中可以是普通元素,也可以是流;flatMap具有一定局限性,它处理后的结果必须是流,然后将每个流拆分成单个元素再汇成一整个流返回,即流中只能是普通元素;filter过滤,参数为断言式接口的实现类,满足条件留下;distinct去重,需要重写equals和hashCode;sorted排序,可以通过自然排序,也可以自定义排序。
3,终结操作,forEach()遍历,参数是个消费型接口,可以直接通过方法的引用实现;reduce()规约,一般与map配合使用,将所有元素通过一种规则合并起来;收集collect(),参数通过调用Collectors的静态方法进行操作,最常用的有toList,toMap,toSet将元素收集为集合。
4,进程是资源分配的最小单位,线程是处理器调度的基本单位,在同一个进程中,所有的线程资源共享,但进程与进程之间相互隔绝。
5,线程的状态有,新建,就绪,运行,阻塞,死亡。
6,多线程下,容易发生数据安全问题。
7,线程的三种创建方式,继承Thread,实现Rannable接口,实现Callable接口。切记重写的run方法不能抛出异常!