C#. 
Les deux se valent, mais y'a beaucoup de gens qui n'aiment pas java par principe, je sais pas pourquoi d'ailleurs, mais parfois faut croire que dire aux utilisateurs que t'a fait ton app en C# est plus sexy que dire que tu l'a fait en Java. 
Bref je m'égare.
Les deux se valent, tout dépend de ce que tu veux faire
Si tu es + Android, fait du Java.
Sinon, je te conseille C#, qui avec le framework .Net est très puissante sur windows, Windows Phone, mais aussi sur le web avec ASP.Net. Tu pourra aussi faire des jeux avec MonoGame (XNA, en mieux). Tu pourra aussi porter ton logiciel sur les autres plateformes avec Mono. Ce qui fera qui ça marchera sur Mac et Linux.
Si tu es + du genre Mac, ou mobile (Android par exemple), le java est mieux, mais sur Windows on pas le nier, le C# est beaucoup plus adapté
Pour Linux, je peux pas te dire je ne m'y connais pas assez
Bref tout dépend de ce que tu veux faire quoi. 