1.Stream常用的一些方法
方法的名称 | 方法的说明 | 是否是延迟方法 |
void forEach(Consumer<? super T> action) | 遍历Stream中的元素 | 否 |
Stream<T> filter(Predicate<? super T> predicate) | 对Stream中的元素进行过滤 | 是 |
<R> Stream<R> map(Function<? super T,? extends R> mapper) | 对Stream中的元素进行转换 | 是 |
long count() | 返回的是Stream中元素的个数 | 否 |
Stream<T> skip(long n) | 跳过n前面的数据 获取n后面的数据 | 是 |
Stream<T> limit(long maxSize) | 获取的是maxSize前面的数据 | 是 |
static <T> Stream<T> concat(Stream<? extends T> a, Stream<? extends T> b) | 将两个流合拼成一个Stream流 | 是 |
2.Junit
1.Junit 主要用于来进行测试 主要用于做局部测试 方便快速去查找bug
2.测试:
黑盒测试: 就是功能测试与接口测试
白盒测试: 性能测试 需要写指令 shell脚本
3.Junit 进行局部测试 开发人员需要对代码进行局部测试
4.Junit 使用的步骤
(1) 在项目中引入Junit 的jar
(2) 定义一个类 定义一个方法
方法的访问修饰符 public
方法的返回值类型只能使用void
方法一般不传递参数 ()
(3) 在方法写注解 @Test
(4) 直接运行方法
3.反射概念
1.反射是所有框架的灵魂 所有的框架都使用反射技术 在反射面前所有类都是裸体(私有 公有)
2.框架:半成品 大部分的企业都在实际开发中都推荐使用框架 使用框架进行开发 效率高 成本低
3.框架:分布式的解决方案:
ssm+ doubb spring springmvc + mybatis + doubb (第一套)(放弃)
springboot+springcloud(第二套)
4.反射机制: 将类的各个部分 封装成一个新的对象(Class对象) 就是反射机制5.反射获取的私有构造/方法/属性 可以通过setAccessible()暴力反射 强制去除私有化
4.反射中获取Class对象
1.第一种 通过类名.class 进行获取(重要)
2.第二种 通过对象名.class进行获取
3.第二种 通过完成的包名+类名来进行加载(重点)
5.反射获取构造方法
方法的名称 | 方法的说明 |
public Constructor<?>[] getConstructors() | 获取所有公有的构造方法 |
public Constructor<?>[] getDeclaredConstructors() | 返回的所有的构造方法(包括公有与私有) |
public Constructor<T> getConstructor(Class<?>... parameterTypes) | 获取指定的公有的构造方法 |
public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes) | 获取单个私有的构造方法 |
1)构造方法如果需要参数 Class<?>... parameterTypes指的是参数类型的class
2)构造方法.newInstance()可以实例化对象
6.反射获取普通成员方法
方法的名称 | 方法的说明 |
public Method[] getMethods() | 获取所有公有的方法(包含父类公有的方法) |
public Method[] getDeclaredMethods() | 获取所有的方法(包括私有的) |
public Method getMethod(String name, Class<?>... parameterTypes) | 获取指定公有的方法 |
public Method getDeclaredMethod(String name, Class<?>... parameterTypes) | 获取单个私有的方法 |
1)普通方法如果需要参数 Class<?>... parameterTypes指的是参数类型的class
2)方法.invoke(对象,参数);可以调用方法
7.反射中获取成员变量
方法的名称 | 方法的说明 |
public Field[] getFields() | 获取所有公有的属性 |
public Field[] getDeclaredFields() | 获取所有的属性(包括私有的) |
public Field getField(String name) | 获取单个公有的属性 |
public Field getDeclaredField(String name) | 获取单个公有与私有属性 |
1)属性.set(对象,参数)可以给该对象的属性赋值
2)属性.set(对象)可以获得该对象的属性值