Generally Java has a large footprint on the machine and startup time can be slower (however they're attempting to solve through the Graal VM). Also Java's syntax is extremely verbose and the API usage is verbose as well. All common complaints coming from a C++ programmer. When comparing programs for daily use, native applications tend to feel snappier, though there's no reason a Java program can't feel that way if properly written.
I like Java for the comfy warm embrace that a business language provides, but C++ wins out in the world of 'get out of my way and let me get stuff done'.
You're not wrong. This is a Rust post after all. I'm of the opinion that C++ by itself is both unfinished and bloated at the same time. Most memory access should be funneled through libraries better equipped to handle memory than our feeble minds, and when we really need the performance, we know when to break out of the cage and get things working. Most of the problems I've encountered in C++ is interpreting the crazy stuff other developers have done, because alas C++ has allowed it! Funny enough, the object oriented nature of the language has been the biggest thorn in my side. You'll get no shortage of complaints by me of how C++ is designed. Somehow I manage to forgive a lot due to the incredible performance of the code a C++ compiler generates.
I like Java for the comfy warm embrace that a business language provides, but C++ wins out in the world of 'get out of my way and let me get stuff done'.