Java изначально была развитием C++ в той же нише - корпоративные приложения. Однако, сейчас области применения языков довольно сильно разошлись.
На C++ пишут, когда нужна тесная интеграция с операционкой или низкоуровневые оптимизации. Например, стриминговые платформы, кибербеза, алготрейдинг, встраиваемый код для не очень мощных устройств, библиотеки с быстрой реализацией алгоритмов. И военка, понятное дело. В расчётах одно время доминировал C++, но с развитием JIT Java теснит его из этой сферы.
На Java пишут корпоративный приклад, где быстрое прикручивание фич силами джунов важнее низкоуровневой производительности.
Даже что касается микрооптимизаций, скиллы разные: на Джаве это в основном сводится к игрищам со сборщиком мусора и JIT, а на C++ - к управлению генерацией машинного кода.
А если разместить два резюме одного человека под Java и C++, то можно ждать годами, пока найдётся рекрутёр, который увидит их оба. Настолько их области применения не пересекаются.
Поэтому достаточно редко возникает ситуация, когда с одного на другое надо "переходить". Скорее всего, в выбранной нише ты и останешься. Какая-то конвергенция в будущем также нереальна. С Джавы уходят на Kotlin, Scala, Python, Clojure и т.п. Туда, где можно те же приложения писать компактнее и быстрее. С C++ переходят скорее на C, Go, Rust и др. языки, компилируемые в машинный код.