讲完之后的重点:IO流、反射、网络通信
JUnit是一个Java语言单元测试框架。
JUnit单元测试的好处:
1)可以书写一些列的测试方法,对项目的所有接口或者方法进行单元测试
2)启动后,自动化的测试
3)只需要查看最后的结果
4)每个单元测试的用例相互独立,由JUnit启动
5)添加,删除,屏蔽测试方法
jar包
如果要引入第三方的插件,xxx.jar的文件。
首先要把这个文件导入到我们的工程目录下
其次,要添加到工程的依赖目录中
测试方法:
1.不能有返回值
2.不能有参数列表
3.必须有Test注解
JUnit的所有的断言都包含Assert类中,这个类提供了很多有用的断言来编写测试用例。
只有失败的断言才会被记录。
1.assertEquals:检查两个变量或等式是否平衡
2.assertTrue:检查条件是否为真
3.assertFalse:检查条件是否为假
4.assertNotNull:检查对象是否不为空
5.assertNull:检查对象是否为空
断言不成功会抛异常,即使程序正常运行但是结果不正确,也会以失败结束。
1.Test
2.Before:在测试方法执行之前执行的方法
3.After:在测试方法执行之后执行的方法
单元测试类的命名:被测试类的类名+Test
测试方法的命名:Test + 被测试方法的方法名
数组适合查询,链表不行。
集合的好多面试题
1.Hashtable和ConcurrentHashMap性能测试
2.ArrayList和LinkedList性能测试
注意:数组查询快,插入慢;链表插入快,查询慢
1)尾插数组快
2)遍历数组快
3)头插链表快
4)随机删除,如果要过滤,建议用LinkedList
开发中,以ArrayList为主
容器对象功能的增强
我们可以将流看作流水线,这个流水线是处理数据的流水线
当我们使用一个流的时候,通常包括三个步骤:
1.获取一个数据源
2.执行操作获取想要的结果
3.每次操作,原有的流对象不改变,返回一个新的Stream对象
Stream有如下的几个特性:
1.Stream不存储数据,一般会输出结果
2.Stream不会改变数据源,通常情况下会生成一个新的集合
3.Stream具有延迟执行的特性,只有调用终端操作时,中间操作才会执行。
集合打印
规约(reduce)缩减,
把一个流缩减成一个值
可以实现对集合的求和,求乘积,求最值
排序:sorted
自然排序
临时排序
Consumer<T>:消费者 void accept(T t)
Supplier<>:供应商 T get()
Function 函数:R apply(T t),将一个数据转化成另一个数据
Predicate 断言:boolean test(T t):用来对指定数据类型数据进行判断 ,返回值类型是boolean
Optional类是Java 8为了解决null(空指针异常)问题
JDK8新增:
1,函数式接口
2.箭头函数(Lambda表达式)
3.Optional类
4.断言
5.Stream编程
------对于文件的操作
Input:把数据从物理内存加载到运行内存。(读文件)读进来
Output:把数据从运行内存写到物理内存。(写文件)写出去
Java.io包下的类
计算机的输入输出都是通过二进制完成 0和1
工具类:File操作文件的类
1、文件的路径
文件的路径
正斜杠:左斜杠,撇:/
反斜杠:右斜杠,捺:\
在Unix或Linux中,路径的分割采用正斜杠/。
在Windows中,路径分割采用反斜杠\。
在Java中,\代表转义。
在File类中,定义了路径分隔符的常量 --> File.separator自动识别操作系统
File类的构造器