关于缓冲区的clear操作

来源:2-9 Buffer的原理和使用场景-面试题解读(1)

厦客

2021-06-28

老师您好,视频中说到claer操作并不会真正的将数据清除掉,那会不会在缓冲区clear操作后被其他线程读取到那些我们认为已经“清除”的数据?
如果是clear后继续写入的话,是对原来的数据进行覆盖操作吗?

写回答

1回答

求老仙

2021-07-14

先说设计原则,内存是不擦除的。

举个例子,GC的时候,删除对象,那么对象删除吗? 删除,但是这只是概念上的删除。实际上,是空间的重新划分。 缓冲区用来做什么——缓冲——里面是数据。那么能删除吗? 不删除,想办法标记为可用再覆盖就好了。因此从这个设计原则出发,clear清空缓冲区吗? 不清空,标记清空。

再说具体的问题,写入的时候怎么办? 重新覆盖,重新记录指针。 

0
0

笑傲Java面试 剖析大厂高频面试真题 秒变offer收割机

深度剖析大厂面试高频真题,让你秒变offer收割机

1783 学习 · 314 问题

查看课程