3-16自由编程 为什么同样一段程序 debug和run控制台的输出不一致

来源:3-16 自由编程

YEEeEM

2019-05-04 22:44:23

http://img.mukewang.com/climg/5ccda4cb0001d83818090946.jpg

http://img.mukewang.com/climg/5ccda4cb0001346c13900876.jpg

如图所示   

写回答

4回答

好帮手慕小班

2019-05-06

同学你好,关于"过大数组"的理解,过大数组是指数组长度过大,写入缓存需要占用一段时间,写入程序也需要一段时间,fos没有用循环结构,直接将数组a写入程序,省略进入缓存时间。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

0

吃吃吃鱼的猫

2019-05-05

同学你好,缓冲区就是内存里的一块区域,把数据先存内存里,然后一次性写入。

如果将字符'a'传入byte数组,直接一次写入过大的数组,其中省略掉写入缓冲区的时间,这样确实会出现Buffer较慢的情况。

不建议同学使用这种方法,同学可以参考这个链接下的回答的写法哦~

https://class.imooc.com/course/qadetail/106180

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~




0
hEEeEM
h 过大数组 指得是 预设高速缓存空间的容量远小于数组大小?
h019-05-05
共1条回复

吃吃吃鱼的猫

2019-05-05

同学你好,造成这种情况的原因可能是

每写一行数据就调用flush方法,会降低写入效率。其次在close方法中已经隐式调用了flush方法,所以,可以将bos.flush()去掉试试。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

0
hEEeEM
h 我是先把字符‘a’传到byte数组里 再用write(数组对象) 这样也会频繁调用吗 每写一行指得是 文本文件中的一行吗
h019-05-05
共1条回复

吃吃吃鱼的猫

2019-05-05

同学你好,debug中是否没有打断点呢?如果没有打断点,可能会出现某一个或一些参数没有获取到就直接执行了此方法,会导致执行结果不一致呢~

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

0
hEEeEM
h 按照题目要求 设置byte数组长度为10W 输出结果为图2 把长度改到2E 时间差就有了 但是有时候Buffer反而慢 为什么
h019-05-05
共1条回复

0 学习 · 11489 问题

查看课程