Я вообще не разбираюсь в Java и С++ знаю не сказать, что профессионально. Вопрос нубский.
У меня есть свое собственное спорное мнение, что все, что написано на Java почти всегда использует ресурсы компьютера куда более расточительно и жадно, чем то, что написано на семействе языков Си.
Основано это исключительно на опыте работы с ПО, написанном на разных языках. Все, что написано на Java, по ощущениям работает медленнее и грузит сильнее.
Числодробительный код на Java примерно в 2-3 раза медленнее, чем на С++ или, скажем, Delphi. Так кажется на собственной субъективном опыте. Т.к. на Java слишком много разных фич пристыкованы в байт-коде чисто механически.
Но писать программы со вполне удовлетворительным быстродействием вполне можно. Даже нумерологические. Скажем, полная обработка растров размерами 10000 на 10000 (бинаризация или другие матричные фильтры) средствами собственного кода (без нативных библиотек) вполне отрабатывает за секунды. Не утомляя пользователя. Но!Тут и встаёт вопрос о знании алгоритмов, вернее, какой где стоит применить.