as someone that knows both, I've made this assumption before too
it has turned out to be not true on almost all occasions
C++ the language is exceptionally complicated, but the ecosystem is relatively simple
Java is the opposite, the language itself is simple enough but the ecosystem is humongous (spring/J2EE, maven/gradle, n^2 logging frameworks/adapters, application servers, anything involving classloaders/annotation processing/dynamic bytecode manipulation, ...)
syntactically they look similar, but other than that there's not much in the way of transferable skills between the two
unfortunately all the data from outside our strange world still needs to be brought in and cleaned up :)
what you never want is to trigger the GC at a bad time
(you can do cache alignment too relatively easily)
Assembly, worst case scenario plain and simple C99+.