Java虚拟机的垃圾回收之后,会说有内存碎片内存碎片的,之前一直不太理解,只是知道有这么一个概念。
前两天给电脑分卷分磁盘的时候,看到一个现象突然就理解为什么会产生内存碎片了。
首先要了解一个概念,什么是内存。
通俗来讲就是在硬盘上的一块区域,可以将内存理解为一块黑板。它是一个连续的,可复用的黑板。
我们往里面存储内容,就是往黑板上写一句句的话。
清理对象,就是将某句话擦除掉,会剩下一片空白。
可以看到,上面图中的红色字已经没了,多出来一块空白。 这个空白的区域就是一块内存碎片。
为什么说碎片多了,空间利用率就会降低呢。
举个例子,明明我们看到有那么多的空白地方,但是后面那个最大的一句话,只能放在最后。
因为前面那些地方有些小呗,放不下,这就是内存碎片,只有比较小的才能放进去,但是也不一定刚好就与那个空白地方合适对不对。
所以,我们要整理内存碎片,整理的过程,就是将数据都移动到一块,整理出来大片整片的空白区域,适合所有对象存放。