函数式接口,Stream流
函数式接口:
Supplier接口:生产型接口是指给定什么类型就返回什么类型给我,只有一个无参构造方法,
Consumer接口:消费型接口,将给定的数据进行处理,有两个构造方法:①void accept(T t):对给定的参数操作 ②default Consumer andThen(Consumer after):对给的参数进行依次操作,然后进行after;无返回值;
Predicate接口:判断型接口,判断参数是否满足条件;有四个构造:①test,返回一个布尔值②negate,表示非③and④or
Function<T,R>接口:通常用于对参数进行处理,T是输入,R是结果,andThen,组合处理
Stream流
stream()生成流
Collection体系集合:使用默认方法stream()生成流, default Stream stream()
Map体系集合:把Map转成Set集合:间接的生成流,获取键或值得集合,亦可获取键值对儿的集合,来生成流;
数组:通过Stream接口的静态方法of(T... values)生成流
Stream流的filter过滤器:.filter()相当于过滤器,括号中写过滤的条件
Stream流的中间操作:①limit(long n )只取前n个,②skip( long n )跳丢弃前n个,③distinct()去掉流中重复元素④sorted ( ),括号中可以自己写排序条件,不写则为自然排序;⑤还有很多操作可以在jdk或者源码里查看;
Stream流的forEach()结束:相当于将前面获取的值进行遍历,括号中可以给出最后的操作;还有个获取统计结果可以结束:count();
Stream流的收集操作:collect(Collector collector):将流操作完的数据收集到集合并遍历;
反射
获取Class类对象的三种方式
1. 类名.class属性
2. 对象名.getClass()方法
3. Class.forName(全类名)方法:推荐使用
Class类获取构造方法: 构造方法: Constructor getConstructor(Class... parameterTypes)
Class类获取成员变量:Field getField(String name)
注意:如果是私有的需要用暴力反射set;
数据库
基本概念
数据库的英文名字:DataBase;用于存储和管理数据的仓库;
数据库的特点:
持久化存储,其实数据库就是一个文件系统;
方便管理
SQL增删改查必学单词
添加创建:create // CREATE
删除:drop // DROP
修改:alter // ALTER
查看表结构:show // SHOW
字符设置:character set // CHARACTER SET
存在:exists // EXISTS
不存在:no exists // NO EXISTS
系统默认的:default // DEFAULT
选择一个数据库查看:select // SELECT
使用:use // USE
表:table //TABLE
结构:desc // DESC
查看表内容:SELECT * FROM students;
排序
ASC: 升序,默认值
DESC: 降序
格式:SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名 [ASC|DESC];
聚合函数
Max,min,avg,sum,count,
格式:SELECT 聚合函数(列名) FROM 表名;
分组 (相当于按照一定条件做统计,比如性别,学科等...)
分组常常和聚合函数一起使用,使用where和having的时候注意,where在前,having在后面, ;
总结!
SELECT (需要分组的字段 1,)字段 2... [聚合函数] FROM表名 [where 筛选数据的条件] GROUP BY 分组字段 [HAVING 聚合函数条件] order by (默认升序,降序的关键词desc ) limit (1,10) “分页显示,这里代表从第1行开始,显示10行”;
|
|