在Java中处理OutOfMemory错误

时间:2018-06-27 07:10:40

标签: java memory-management hashmap

我的应用程序中有一个全局public boolean isStatusBarVisible() { Rect rectangle = new Rect(); Window window = getActivity().getWindow(); window.getDecorView().getWindowVisibleDisplayFrame(rectangle); int statusBarHeight = rectangle.top; return statusBarHeight != 0; } ,其中包含自定义对象作为键。第三方将其称为API,他们将创建一个新的自定义对象,如果HashMap中还没有该对象,则将其放入地图中。在这种情况下,随着HashMap大小的不断增加,如何管理OutOfMemoryError,并且在部署后增加JVM内存很繁琐。

1 个答案:

答案 0 :(得分:1)

如果此映射可以无限期增加,则您需要的解决方案不仅仅是内存中的HashMap。即使您不断提高JVM的限制,您使用的实际硬件也是有限的。

您可以改为将这些密钥保留在数据库(或文件)中,然后对它进行查询。为了提高性能,您可以决定将N个最近使用的密钥保留在内存中作为缓存。