Java хороша там где нужны большие объемы данных, масштабируемость , потокобезопастность , при этом плевать на требования к железу , всегда можно поставить сервак помощнее
На микроконтроллерах в силу специфики нужны минимальный размер скомпилированного кода , более оптимальный код , минимальное потребление электроэнергии.
Потому си или даже ассемблер в особых случаях