知识卡片

懒初始化省空间

普通读书笔记卡 · 1710.a

内容

如果大量对象长期处于简单状态,可以把昂贵字段延迟到真正需要时再创建。孤立容器不分配组列表,就能显著降低空对象群的内存占用。发散:默认值本身也可以是一种状态编码。

参考来源

- 位置:《你真的会写代码吗-2021》第4章《宝贵的内存:空间效率》"4.1 使用轻量级集合(Memory1)"一节(源文件:_epub-src/OEBPS/Text/0014.xhtml) - 结论依据:原文明确"如果有许多容器从来不会连接到某个容器组,就可以等实际需要时才实例化这个List,以节省空间(也就是懒初始化)……如果group字段等于null,那么就代表它是一个孤立的容器",并在对账表中确认"所有的容器都是孤立的,所以永远不会分配列表"带来的显著节约。 - 原始内容:此外,如果有许多容器从来不会连接到某个容器组,就可以等实际需要时才实例化这个List,以节省空间(也就是懒初始化,lazy initialization)。换句话说,如果group字段等于null,那么就代表它是一个孤立的容器……特别是仅在首次需要时才为列表分配内存的想法,显然带来了极大的节约。