Все зависит от задач. Наверное, которые больше интересуют.
C++ хорош для работы, в которой очень критична производительность, выделяемаяя память. Как примеры, когда надо работать с железом, игры, сложные математические расчеты.
Из минусов - писать на С++ сложнее. Намного больше способов "выстрелить себе в ногу".
Java проще в изучении и скорости написания. Из коробки, кросс платформенный (запустится на windows, linux и mac без дополнительных колнудств). Примеры задач на Java - энтерпрайз, бекенды для веба, андройд.
Из минусов - немного проигрывает в производительности, сильнее - в потребляемой памяти.