IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> (Junit单元测试、NIO(异步IO))day19javaSE基础查漏补缺 -> 正文阅读

[开发测试](Junit单元测试、NIO(异步IO))day19javaSE基础查漏补缺

1.单元测试:单独的测试某一个方法的运行

2.导完是不是可以删除吉ar包?

不能删除,删除了,类里面就不能导包了

3.注解是一个数据类型

4.点击类的三角,会全部执行,但是不是按顺序运行的

点击模块run all test,里面的所有test方法也会运行。

5.什么测试方法可以直接运行?

1)没有添加@Test注解的方法,不能junit单独运行

2)junit只能运行,public修饰的,没有返回值,没有参数的非静态方法

6.想运行静态等方法怎么办

1)先创建一个可以直接运行的测试方法

2)在里面调用其他方法。

7.Junit相关注解

@Test:可以单独的执行某一个方法
@Before:用来修饰方法,该方法会在每一个测试方法执行之前自动执行一次。
@After:用来修饰方法,该方法会在每一个测试方法执行之后自动执行一次。
@BeforeClass:用来静态修饰方法,该方法会在所有测试方法之前自动执行一次,而且只执行一次。
@AfterClass:用来静态修饰方法,该方法会在所有测试方法之后自动执行一次,而且只执行一次。

注:before不能加在静态方法上

8.测试方法注意事项

1)junit的注意事项:不是所有的方法都能使用junit单元测试运行
1.没有添加@Test注解的方法,不能junit单独运行
2.junit只能运行,public修饰的,没有返回值,没有参数的非静态方法

2)如何运行测试方法

选中方法名 --> 右键 --> Run ‘测试方法名’ 运行选中的测试方法

选中测试类类名 --> 右键 --> Run ‘测试类类名’ 运行测试类中所有测试方法

选中模块名 --> 右键 --> Run ‘All Tests’ 运行模块中的所有测试类的所有测试方法

3)如何查看测试结果

绿色:表示测试通过

红色:表示测试失败,有问题

4)断言,Assert.asserEquals,预判错误就会抛断言异常。

9.同步异步,阻塞非阻塞

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7GWzULDw-1639407035397)(C:\Users\xiu\AppData\Roaming\Typora\typora-user-images\1639360751654.png)]

阻塞:Sever Socket.accpet 和 is.read 也是阻塞的方法。

10.请说出“同步”与“异步”的区别。

同步是一种可靠的有序运行机制,当我们进行同步操作时,后续的任务是等待当前调用返回,才会进行下一步;而异步则相反,其他任务不需要等待当前调用返回,通常依靠事件、回调等机制来实现任务间次序关系

11.请说出“阻塞”与“非阻塞”的区别。

在进行阻塞操作时,当前线程会处于阻塞状态,无法从事其他任务,只有当条件就绪才能继续,比如ServerSocket新连接建立完毕,或者数据读取、写入操作完成;而非阻塞则是不管IO操作是否结束,直接返回,相应操作在后台继续处理。

12.字符流底层也是用的字节数组,是不是跟bytebuffer,一样啊???

13.请说出Buffer的allocate()与allocateDirect()方法的区别。

在堆中创建缓冲区:allocate(int capacity)

在系统内存创建缓冲区:allocatDirect(int capacity)

在堆中创建缓冲区称为:间接缓冲区,在系统内存创建缓冲区称为:直接缓冲区,间接缓冲区的创建和销毁效率要高于直接缓冲区,间接缓冲区的工作效率要低于直接缓冲区。

14.系统内存比堆内存读取要快嘛?

系统内存和系统交互的快

15.为啥但是放在系统内存中的ByteBuffer我们不能直接使用 ?

因为这是内核的内存,只能由操作系统来使用。

16.ByteBuffer的使用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X5z4hlnW-1639407035398)(C:\Users\xiu\AppData\Roaming\Typora\typora-user-images\1639363567687.png)]

ByteBuffer有三个重要的属性:

capacity:ByteBuffer底层其实是一个字节数组,capacity代表数组的长度。
position:表示下一个要操作(读或写)的元素的位置。
limit:在写模式下,limit=capacity,在读模式下,limit代表数组中实际元素的个数。limit:限制多少长度可用。

注意:存满了再存会咋样?

会报错。

17.ByteBuffer 是缓冲区,可用来减少物理磁盘的读写。

18.mark标记,reset:重置position位置到mark。

reset必须配合mark使用。

19.run with coverage的作用?

查看单元测试覆盖度

//三太子敖丙关注一下

20.高速缓存,MapTypeBuffer原理。–内存到内存的复制

被读取的文件,和被写入的文件,都会实时映射到内存中

所以就是内存到内存的复制。

21.实时映射,是咋做出来的

看MappedByteBuffer底层原理

22.能把大文件分成 n个小文件再复制不?

可以逻辑分段存储,不可以物理分段。

23.内核空间和用户空间

内核空间 是操作系统 内核代码运行的地方,用户空间 是 用户程序代码运行的地方。当应用进程执行系统调用陷入内核代码中执行时就处于内核态,当应用进程在运行用户代码时就处于用户态。

24.MapperBtyeBuffer写的比被读取文件多了:会报cannot extend file to required size–无法将文件扩展到所需大小

25.请说出Buffer的flip()方法的作用。

Buffer有两种模式,写模式和读模式。在写模式下调用flip()之后,Buffer从写模式变成读模式。

那么limit就设置成了position当前的值(即当前写了多少数据),postion会被置为0,以表示读操作从缓存的头开始读,mark置为-1。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-15 18:35:34  更:2021-12-15 18:37:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 6:39:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码