我正在考慮對大量的TimerTasks(比如說一兩百萬)使用Timer類。 Timer的堆實現是基於數組的,並且由於沒有辦法爲數組保留空間,所以問題出現了,當內存碎片時,Java如何處理大型連續內存塊(對於這種情況下的數組)的分配?Java內存碎片和大型數組的分配
如果沒有可用的片段足夠大,是否會拋出OutOfMemoryError?或者,當可用內存總量足夠時,我可以期待JVM具有某種內存解除碎片策略嗎?
編輯:看來沒有JVM實現獨立的答案我的問題。在我的情況下,JVM實現是OpenJDK 14.0-b16版(根據java.vm.name和java.vm.version系統屬性)。