inj*_*joy 1 java immutability guava
我有一张如下地图,一旦我得到原始地图的不可变版本,我就不再需要原始地图了.有没有办法让GC回收它?
Map<String, String> map = new TreeMap<>();
map.put("1", "one");
map.put("2", "two");
map.put("3", "three");
ImmutableMap<String, String> IMMUTABLE_MAP = ImmutableMap.copyOf(map);
Run Code Online (Sandbox Code Playgroud)
另一个答案是对的,但你应该尝试做的是使用
ImmutableMap<String, String> map =
ImmutableMap.<String, String>builder()
.put("1", "one")
.put("2", "two")
.put("3", "three")
.build();
Run Code Online (Sandbox Code Playgroud)
构建器针对其功能进行了优化,您通常可以在单个表达式中编写它.
更好的是
ImmutableMap<String, String> map = ImmutableMap.of(
"1", "one",
"2", "two",
"3", "three");
Run Code Online (Sandbox Code Playgroud)
最多可用于四个键值对.
您可以通过不再引用它来使Map符合垃圾回收的条件.map超出范围时会自动发生这种情况.如果是"亡羊补牢"你,你可以明确地分配null给map.
无论哪种方式,当JVM感觉像是在实时垃圾收集发生在后台.
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |