java扩展内容

Stream中有三个重载的reduce方法


重载方法一
Optional reduce(BinaryOperator accumulator);
重载方法二
T reduce(T identity, BinaryOperator accumulator);
重载方法三
U reduce(U identity BiFunction<U, ? super T, U> accumulator, BinaryOperator combiner);
用法:1
函数式接口BinaryOperator,继承于BiFunction,Bifunction中有一个apply方法,接收两个参数,返回一个结果
方法需要一个函数式接口参数,该函数式接口需要两个参数,返回一个结果(reduce中返回的结果会作为下次累加器计算的第一个参数),也就是累加器
java扩展内容
java扩展内容
方法二
供一个跟Stream中数据同类型的初始值identity,通过累加器accumulator迭代计算Stream中的数据,得到一个跟Stream中数据相同类型的最终结果
java扩展内容
java扩展内容
用法三
首先看一下BiFunction的三个泛型类型分别是U、 ? super T、U,参考BiFunction函数式接口apply方法定义可以知道,累加器累加器通过类型为U和? super T的两个输入值计算得到一个U类型的结果返回。也就是说这种reduce方法,提供一个不同于Stream中数据类型的初始值,通过累加器规则迭代计算Stream中的数据,最终得到一个同初始值同类型的结果
java扩展内容
java扩展内容

*JAVA类DAO类的作用

DAO是Data Access Object数据访问接口,数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。 在核心J2EE模式中是这样介绍DAO模式的:为了建立一个健壮的J2EE应用,应该将所有对数据源的访问操作抽象封装在一个公共API中。用程序设计的语言来说,就是建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法。在这个应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口在逻辑上对应这个特定的数据存储。

mysql索引

含义
索引(index)是帮助MySQL高效获取数据的一种有序的数据结构

特点:
优势:
类似于书籍的目录索引,提高数据检索的效率,降低数据库的IO成本
通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗
劣势:
实际上索引也是一张表,该表中保存了主键与索引字段,并指向实体类的记录,所以索引列也是要占用空间的
虽然索引大大提高了查询效率,同时却也降低更新表的速度,如对表进行INSERT、UPDATE、DELETE。因为更新表时,MySQL 不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段,都会调整因为更新所带来的键值变化后的索引信息
MYSQL索引有四种
PRIMARY(唯一且不能为空;一张表只能有一个主键索引)
INDEX(普通索引)
UNIQUE(唯一性索引)
FULLTEXT(全文索引)

mysql视图

MySQL在5.1以后推出了视图(VIEW),本身是一个虚拟表,它的数据来自于表,通过执行时动态生成
特点
简化sql语句
提高了sql的重用性
保护基表的数据,提高了安全性

CREATE VIEW 视图名 AS 查询语句;
视图一般用于查询的,而不是更新的