* 1.JUnit单元测试
* JUnit是一个Java语言单元测试框架。
* JUnit单元测试的好处:
* 1.可以书写一些列的测试方法,对项目的所有的接口或者方法进行单元测试。
* 2.启动后,自动化的测试。
* 3.只需要查看最后的结果。
* 4.每个单元测试的用例相对独立,由JUnit启动。
* 5.添加,删除,屏蔽测试方法。
*
* jar包
* 如果要引入第三方的插件,xxx.jar的文件。
* 首先要把这个文件导入到我们的工程目录下
* 其次,要添加到工程的依赖目录中
* 测试方法:
* 1.不能有返回值
* 2.不能有参数列表
* 3.必须有Test注解
public class Ch03 {
@Test
public void test01() {
System.out.println("test01方法执行...");
}
@Test
public void test02() {
System.out.println("test02方法执行...");
}
@Before
public void testBefore(){
System.out.println("before方法执行...");
}
@After
public void testAfter() {
System.out.println("after方法执行...");
}
}
* JUnit断言
*
* JUnit的所有的断言都包含Assert类中
* 这个类提供了很多有用的断言来编写测试用例。
* 只有失败的断言才会被记录。
*
* 1.assertEquals:检查两个变量或等式是否平衡
* 2.assertTrue:检查条件是否为真
* 3.assertFalse:检查条件是否为假
* 4.assertNotNull:检查对象是否不为空
* 5.assertNull:检查对象是否为空
Assert.assertTrue(false);//AssertionError
* 数组查询快,插入慢,链表插入快,查询慢
*
* 1.尾插数组快,链表慢
* 2.遍历,数组快
* 3.头插,链表快,数组慢
* 4.随机删除,如果要过滤,建议用linkedlist
* 开发中,还是以arraylist为主
* JDK8新增
* Stream编程
* 容器对象功能的增强
*
* 我们可以将流看做流水线,这个流水线是处理数据的流水线
*
* 当我们使用一个流的时候,通常包括三个步骤:
* 1.获取一个数据源
* 2.执行操作获取想要的结果
* 3.每次操作,原有的流对象不改变,返回一个新的Stream对象
*
* Stream有几个特性:
* 1.Stream不存储数据,一般会输出结果
* 2.Stream不会改变数据源,通常情况下会生成一个新的集合
* 3.Stream具有延迟执行的特性,只有调用终端操作时,中间操作才会执行。
/**
* peek操作,调试
*/
@Test
public void test15(){
// 在stream中调试,stream不支持debug
List<Person> collect = personList.stream()
.filter(item -> item.getSalary() > 5000)
.peek(System.out::println)
.collect(Collectors.toList());
System.out.println(collect);
}
* JDK8函数式接口
* Consumer<T>:消费者 void accept(T t)
* Supplier:供应商 T get()
* Function: R apply(T t),将一个数据转化成另一个数据
* Predicate:断言,boolean test(T t),判断返回值是boolean
* Optional类是java8为了解决null问题
*
* JDK8新增:
* 1.函数式接口
* 2.箭头函数(lambda表达式),不是java特有的。阉割版
* 3.Optional类
* 4.断言
* 5.Stream编程
* Java IO流---对于文件的操作
* Input:把数据从物理内存加载到运行内存。(读文件)
* Output:把数据从运行内存写到物理内存。(写文件)
*
* java.io包下的类
*
* 计算机的输入输出都是通过二进制完成。
* 工具类:File操作文件的类
* 1.文件的路径
* 正斜杠:左斜杠,撇,/
* 反斜杠:右斜杠,捺,\
* 在Unix/Linux,路径的分隔采用正斜杠/,
* 在windows中,路径分隔采用反斜杠\。
*
* 在java中,\代表转义
*
* 在File类中,定义了路径分隔符的常量,自动识别操作系统。
System.out.println("e:" + File.separator + "workspace");
System.out.println(File.pathSeparator);
* File类的构造器
public static void main(String[] args) {
// file就代表了当前的目录
File file1 = new File("E:\\workspace\\idea");
System.out.println("file1 = " + file1);
File file2 = new File("E:\\workspace\\idea","aaa");
System.out.println("file2 = " + file2);
File file3 = new File(file1,"aaa");
System.out.println("file3 = " + file3);
}