我需要一个关于我遇到的面试问题的提示。我试图找到一种解决方案,但在这里我需要专家的建议。如果遇到这种特殊情况,您将采用什么不同的策略?问题和我的想法如下:
问:您想在Java的列表中存储大量对象。对象的数量非常庞大,并且逐渐增加,但是可用内存非常有限。你会怎么做?问:但这将涉及磁盘访问,并且速度会变慢并影响执行。A。我的回答是,一旦列表中的元素数量 超过某个阈值,我会将其转储到文件中。然后,我通常会构建类似缓存的数据结构,该数据结构将容纳最频繁或最近添加的元素。我给出了操作系统采用的页面交换类比。
我不知道解决方案,在面试中无法正确思考。我试图回答为:
A。在这种情况下,我会考虑水平扩展系统或 添加更多RAM。
在我回答了这个问题之后,我的电话采访立即结束。我觉得面试官对答案不满意。但是,答案应该是什么。
此外,我不仅对答案感到好奇,还想了解处理该问题的不同方法。
答案 0 :(得分:1)
也许我不确定,但这表示Flyweight Pattern。这与在字符串池中使用的模式相同,并且必须有效执行该模式。此外,我们需要关注与数据库相关的任务,以便在超过阈值限制时保留数据。另一种技术是序列化它,但是正如您所说,面试官并不满意,还需要其他解释。