lyt0612

导航

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));
    }
}

###运行结果

 

posted on 2022-08-08 18:40  小仙女吖~  阅读(16)  评论(0编辑  收藏  举报