The right answer is that Java's generational collector supports this transaction lifetime reasonably well in many cases.