Некоторые из вас, вероятно, знают, что некоторые из основных API-интерфейсов Java предоставляют явные вызовы System.gc(). Я знаю два случая, когда это происходит:
- NIO. Я считаю, что это делается для того, чтобы сделать некоторую очистку для прямых ByteBuffers, когда в системе заканчивается "прямая" память.
- RMI. Здесь причина не для меня понятна...
Итак, вопросы:
- Знаете ли вы, почему System.gc() требуется для RMI?
- Знаете ли вы какие-либо другие ситуации, когда основные API (или даже некоторые другие популярные библиотеки) могут напрямую обращаться к System.gc()?