上記のSoftReferenceの他に、たとえば、約95%のメモリ使用量:
MemoryMXBean mbean = ManagementFactory.getMemoryMXBean();
NotificationBroadcaster emitter = (NotificationBroadcaster) mbean;
emitter.addNotificationListener(new NotificationListener() {
public void handleNotification(Notification notification, Object handback) {
System.out.println("Low memory notification");
}
}, null, null);
for (MemoryPoolMXBean memPool : ManagementFactory.getMemoryPoolMXBeans()) {
if (memPool.isUsageThresholdSupported()) {
MemoryUsage memUsage = memPool.getUsage();
memPool.setUsageThreshold((long) (memUsage.getMax() * 0.95));
}
}
+1 softrefferencesとguavaで同様の回答を投稿したいと思っています:) Java参考文献の理解を深めるために私は[この記事を見ました](http://www.kdgregory.com/index.php?page=java.refobj)便利です。 –
答えをありがとう!これは十分に証明された回答であることを嬉しく思う(@PhilippWendler @ortangと@mikera)! – asksw0rder