As indicated above, modern JVMs are very sophisticated and can do an awful lot to minimise the effect of object creation. But in my experience (of writing high-throughput systems with Java 1.6 and 1.7), there can still be big performance gains from avoiding temporary objects.
Yes, the optimiser may be able to remove or hoist some small objects. Yes, heap allocation is almost free. And yes, a short-lived object may not add any time to the next garbage collection. But if it hits the heap at all, it will make those garbage collections more frequent; and that can make a very significant difference.
So I’d be very wary of using good GC performance as a catch-all excuse for profligate use of temporary objects. They may be less costly than non-GC languages, but much of the time they’re still far from free.