One-and-done is my favorite way of thinking about using Java. The JVM provides the perfect, for my use case, amount of abstraction from the hardware while still allowing you to do some amazing things.
There is also a huge amount of features that are supported by the JVM that Java still doesn't make use of.
* Best IDEs around. (Yes better than .net ecosystem)
* JVM monitoring (Flight Control, VisualVM)
* Performance Sampling/Profiling <1% perf cost
* actually being cross platform (yes, mono, bla)