阵列可以比物理内存大吗? (例如可以部分分页)

时间:2014-12-05 19:24:48

标签: java

假设我有一个提供字符串数组的API,例如,此数组可能比物理内存大。

JVM页面是否可以成为数组的一部分,并在遍历时将其从磁盘中带出来?或者是一个数组是一个“原子”数据类型,无法部分分页?我假设链接列表的答案要容易得多,因为任何节点都可以透明地分页并在页面错误中检索,但我想知道JVM(或者主要操作系统是否支持)只允许分页大部分连续阵列。

1 个答案:

答案 0 :(得分:0)

不。 JVM无法做到这一点。

但是你当然可以写一个List的实现来透明地处理它,将值存储到磁盘或数据库中,并在必要时检索它们。

操作系统可以为您分配内存到磁盘的内容,但您需要小心依赖它来有效地工作。它是否会在没有停止工作的情况下工作,取决于你正在做什么。任何涉及快速连续访问随机条目的内容都无法很好地处理被分页。例如,哈希表在这种情况下表现不佳。