2022-08-08 第四组 王佳齐 学习笔记
学习笔记:
Junit单元测试
Junit是一个Java语言单元测试框架。【必会】
为什么要用Junit?
1.可以书写一系列的测试方法,对项目的所有接口或者方法进行单元测试。
2.启动后,自动化的测试。
3.只需要查看最后的结果。
4.每个单元测试的用例是相对独立的,用Junit启动。
5.添加,删除,屏蔽测试方法。
jar包
如果要引入第三方的插件,xxx.jar的文件。
首先要把这个文件导入到我们的工程目录下
其次,要添加到工程的依赖目录下
测试方法要求
1.不能有返回值【此方法本身没有意义,就是用来做测试才创建的】
2.不能有参数
3.必须有Test注解
------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
Junit断言
Junit所有的断言都包含在Assert类中。【了解即可】
这个类提供了很多有用的断言来编写测试用例,
只有失败的断言才会被记录。
静态方法,用类名.方法名直接调用
1.assertEquals:检查两个变量或等式是否相等
2.assertTrue:检查条件是否为真
3.assertFalse:检查条件是否为假
4.assertNotNull:检查对象是否不为空
5.assertNull:检查对象是否为空
断言不成功会抛异常,即使程序正常运行但是结果不正确,也会以失败结束。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Junit注解
1.Test:测试方法
2.Before:在测试方法执行之前执行的方法
3.After:在测试方法执行之后执行的方法
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
命名规范:
单元测试类的命名:被测试类的类名+Test
测试方法的命名:test+被测试方法的方法名
集合的面试题1.Hashtable和ConcurrentHashMap【专门应付高并发】性能测试2.ArrayList和LinkedList性能测试数组查询快,插入慢;链表插入快,查询慢1.尾插数组快,链表慢2.遍历,数组快3.头插:链表快,数组慢4.随机删除,如果要过滤,建议用LinkedList
开发中还是以ArrayList为主
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
JDK8新增【必知】
1.函数式接口【必会】
2.箭头函数(lambda表达式)不是Java特有的【必会】
3.Optional类
4.断言
5.Stream编程
函数式接口
1.Consumer<T>:消费者 void accept(T t)【有参数,无返回值】
2.Supplier :供应商 T get()【有返回值,无参数】
3.Function:R apply(T t),将一个数据转化成另一个数据
4.Predicate:断言,boolean test(T t),判断返回值是boolean
Optional类是Java8为了解决null问题
流式操作,就是一个单独的接口,不是io流【了解即可】
Steam编程
容器对象功能的增强
我们可以将流看作流水线,这个流水线是处理数据的流水线
当我们使用一个流时通常包括三个步骤
1.获取一个数据源
2.执行操作获取想要的结果
3.每次操作,原有的流对象不改变,返回一个新的Stream对象
Stream有几个特性
1.Stream不会存储数据,一般会输出结果
2.Stream不会改变数据源,通常情况下会生成一个新的集合
3.Stream具有延迟执行的特性,只有调用终端操作时,中间操作才会执行
归约(reduce)缩减,把一个流缩减成一个值
可以实现对集合的求和,求乘积,求最值
分组将集合分为多个map,
例如员工按性别分组,
员工按薪资是否高于8000分组。
以下需要掌握
筛选*
映射
将一个流中的元素按照一定的映射规则映射到另一个流中
排序
收集
Java IO流---对于文件的操作
Input:把数据从物理内存加载到运行内存。(读文件)
Output:把数据从运行内存写到物理内存。(写文件)
java.io包下的类
计算机的输入输出都是通过二进制完成
0和1
------------------------------------------------------------------------------------------------------
工具类:File操作文件的类
1.文件的路径
正斜杠:左斜杠,撇,/
反斜杠:右斜杠,捺,\
在Linux和Unix中,路径的分隔采用正斜杠
在windows中,路径分隔采用反斜杠\【正斜杠也好使】
在Java中,\代表转义
在Java中写反斜杠是要写两个反斜杠,否则会被认为是转义
在File中也定义了路径分隔符的常量,自动识别操作系统,分隔符会根据操作系统不同给你生成对
应的分隔符
-------------------------------------------------------------------------------------------------------------------------------
File类的构造器
1.参数只有路径
2.参数有路径和文件
3.参数有File类对象【存的要是路径】和文件
文件的操作
1.创建文件
新建文件不会覆盖已有文件
绝对路径和相对路径:
绝对路径:就是以盘符开头的
相对路径就是没有指定的盘符开头【相对于当前工程的】
学习心得:今天学习了Junit,Stream,还有一点io流的知识,感觉知识点很杂,Stream和File的类很多。

浙公网安备 33010602011771号