quoto Mr Storm, la domanda è decisamente generica
se t'interessa sapere quali tipologie di software puoi realizzare in java allora sappi che esistono programmi java che vanno dalla banale contabilità fino al controllo di macchine utensili e addirittura sistemi operativi realizzati in java
java è il linguaggio preferito in ambito enterprise, ci si fa praticamente di tutto
java però non è un linguaggio che puoi usare in ambiti che devono necessariamente essere deterministici ( quindi niente realtime )....il problema è che il garbage collector potrebbe decidere in un momento qualsiasi di far pulizia, oppure il compilatore jit potrebbe iniziare a compilare una classe che è stata appena richiesta dal programma
ovviamente oggi giorno non esistono interpreti java, si fatto tutto con compilatori jit oppure aot ( come gjc )....quindi non pensare che java sia lento, perchè nei test è intorno al 30% più lento del c++ ma è più veloce di praticamente tutti gli altri linguaggi basati su virtual machine
riguardo il determinismo ( e quindi ambienti realtime ) a parte c, c++ e qualche altro non è che ne trovi tantissimi di linguaggi adatti allo scopo
però java ha il grandissimo vantaggio di essere un linguaggio molto potente, completo ( migliaia di classi per fare qualsiasi cosa e altre migliaia prodotte da programmatori in tutto il mondo e che puoi usare ) ed estremamente portabile
la fregatura più grossa per l'ambiente desktop è la jvm che per avviarsi richiede alcuni secondi e ovviamente la cosa si nota