Java was designed to make manual memory management a non-concern. Yet, ironically, it's the runtime that require more explicit memory tuning than any others.