Java ist nicht für zeitkritische Sachen geeignet da etwas langsam. Der Börsenmakler, der ein Programm schreibt das innerhalb von Millisekunden bei festgelegten Ereignissen bestimmte Aktien (ver)kaufen soll, würde das sicher nicht in Java machen. Auch für eine Brute-Force-Software, die so viele Passwörter wie möglich in der Sekunden testen soll, wäre Java ungeeignet.
Den einzigen wirklichen Vorteil sehe ich darin, dass diese Sprache auf verschiedensten System einsetzbar ist.
Ich musste Java in Grundzügen in der Schule lernen und mir gefällt der Syntax nicht besonders gut.
Mit C kann ichs nicht vergleiche, aber z.B. PHP find ich "schöner" aufgebaut.
In Java muss man z.B. allen Variablen einen bestimmten Typ zuweisen wie bspw. Integer, Boolean oder String. In PHP kann man sie einfach entsprechend dem was darin gespeichert ist verwenden, muss das aber nicht extra festlegen.
Die Methode bei Java hat natürlich was Speicherverwaltung etc. angeht ihren Sinn, aber ich persönlich find's unnötig umständlich.