It's amusing to hear developers claim that C++ is more performant than Java.
While it may have been the case back in the 90's, nowadays it's no longer true.Java often exceeds C++ performance, as this research by Keith Lea demonstrates. Back in 2003, this article stirred quite a bit of controversy when it first got published; nowadays, it wouldn't surprise most people.
Personally, I've written Java programs which processed 100K operations a second, and never had second thoughts about switching to an unmanaged language. My guidelines for achieving this performance (that may sound simplistic but worked for me) are:
1. Cache as much data as possible in memory
2. Fine-tune garbage collection
3. Avoid using ORM frameworks as much as possible
4. Design the program with scalability in mind (i.e. it's better to overcomplicate things at first than to significantly alter the program at a later stage)
5. Design the program to be fault-tolerant (what if network connection fails? what if you can't read the config file?)
6. Implement security from the start (ask yourself what would happen if a user wasn't well-behaved?)