2022-08-08 第二组刘禹彤 学习笔记
打卡27天
###学习内容
1.JUnit单元测试
- JUnit是一个Java语言单元测试框架
- JUnit单元测试的好处:1.可以书写到一系列的测试方法,对项目的所有接口或者方法进行单元测试
2.启动后,自动化的测试
3.只需要查看最后的结果
4.每个单元测试的用例相对独立,由JUnit启动
5.添加,删除,屏蔽测试方法
- jar包
1.如果要引入第三方的插件,xxx.jar的文件
2.首先要把这个文件导入我们的工程目录下,其次,要添加到工程的依赖目录中
3.Test注解是JUnit提
供的一个单元测试注解,如果你的工程没有导入jar包,Test注解是不认识的
- 测试方法: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性能测试ConcurrentHashMap(专门应对高并发)Hashtable比ConcurrentHashMap慢2.ArrayList和LinkedList性能测试数组查询快,插入慢,链表插入快,查询慢,开发中还是以ArrayList为主1.尾插数组快,链表慢2.遍历,数组快3.头插链表快,数组慢 4.随即删除,如果要过滤,建议用LinkedLIst
2.stream编程(JDK8新增)
- 容器对象功能的增强
我们可以将流看作流水线,这个流水线是处理数据的流水线
- 当我们使用一个流的时候,通常包括三个步骤:
1.获取一个数据源
2.执行操作获取想要的结果
3.每次操作原有的流对象不改变,返回一个新的Stream对象
- Stream有几个特性:1.Stream不存储数据,一般会输出结果
2.Stresm不会改变数据源,通常情况下会生成一个新的集合
3.Stream具有延迟执行的特性,只有调用终端操作时,中间的操作才会执行
- 归约(reduce)
缩减,把一个流程缩减成一个值,可以实现对集合的求和,求乘积,求最值
- 分组
分组将集合分为多个map
映射
将一个流的元素按照一定的映射规则映射到另一个流中
- 排序(sorted)
自然排序
临时排序
JDK8函数式接口
Comsumer<T>:消费者 void accept(T t)
Supplier:供应商 T get()
Function: R apply(T t),将一个数据转化成另一个数据
Predicate:断言,boolean test(T t),判断返回值是booleaan
Optional类是java8为了解决null问题
JDK新增
1.函数式接口
2.箭头函数(Lambda表达式)
3.Optional类
4.断言
5.Stream编程
IO流------对于文件的操作
- Input:把数据从物理内存加载到运行内存(读文件)
Output:把数据从运行内存写到物理内存(写文件)
- java io包下的类
计算机的输入输出都是通过二进制完成(0和1)
- 工具类:File是操作文件的类
- 文件的路径
正斜杠:左斜杠,撇:/
反斜杠:右斜杠,撇:\
在Linux/Unix中,路径的分割采用正斜杠/
在windows中,路径的分割采用反斜杠\
在java中,\代表转义
在File中,定义了路径分隔符的常量,自动识别操作系统
- File类的构造器
- 绝对路径和相对路径
绝对路径:就是以盘符开头的
相对路径:就是没有指定的盘符开头(相当于当前工程的)
###学习心得
今天学习JUnit和部分IO流,感觉和前面学习的知识有联系,java基础一定要打牢
###掌握情况:一般
###课上练习
package b; /*绝对路径和相对路径*/ import org.junit.Test; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; /*文件的操作*/ public class Ch03 { //创建文件 @Test public void test01(){ File file1 = new File("D:\\javalyt\\vscode\\文件操作"); try { file1.createNewFile(); } catch (IOException e) { throw new RuntimeException(e); } System.out.println("文件创建成功。。"); } @Test //删除文件 public void test02(){ File file1 = new File("D:\\javalyt\\vscode\\文件操作"); file1.delete(); System.out.println("文件删除成功。。"); } @Test //创建文件夹 public void test03(){ //创建一层文件夹 File file1 = new File("D:\\javalyt\\vscode\\hi"); boolean b =file1.mkdir(); file1.delete();//删除文件夹,同样不走回收站 //创建多层文件夹 File file2 = new File("D:\\javalyt\\vscode\\文件操作\\aa"); boolean mkdirs = file2.mkdirs(); file2.delete(); System.out.println(b); System.out.println(mkdirs); } @Test public void test04(){ //新创建某一个路径下的某一个文件,这个路径还不存在,没有这个方法,我们就需要封工具类 File file = new File("D:\\hello\\"); } @Test public void test05() throws IOException { File file = new File("D:\\javalyt\\vscode\\文件操作\\aa.txt"); //判断文件是否存在 System.out.println(file.exists()); //新建文件是不会覆盖已有的文件 // System.out.println(file.createNewFile()); System.out.println(file.isDirectory()); } @Test public void test06(){ File file = new File("d:/123.txt"); File file1 = new File("bbb.txt"); // System.out.println(file.getAbsolutePath()); // System.out.println(file1.getAbsolutePath()); // 获取对应的相对路径的那个对象 File absoluteFile = file1.getAbsoluteFile(); // System.out.println(file.getParent()); File parentFile = file.getParentFile(); // System.out.println(file.getName()); // System.out.println(file1.getPath()); // System.out.println(new Date(file.lastModified())); // System.out.println(file.length()); // 剪切粘贴 移动 file.renameTo(new File("d:\\aaa.txt")); System.out.println(); } @Test public void test07(){ //获取当前路径下所有文件名 File file = new File("D:\\javalyt\\vscode"); String[] fileNames = file.list(); // System.out.println(Arrays.toString(fileNames)); //获取当前路径下所有文件名及路径 File[] files = file.listFiles(); System.out.println(Arrays.toString(files)); } @Test public void test08(){ File file = new File("D:\\javalyt\\vscode"); String[] list = file.list((dir, name) -> { if (dir.isDirectory()){ return true; } return false; }); System.out.println(Arrays.toString(list)); } }
###运行结果