Vorrei farti notare un paio di cose, dato che hai detto di aver programmato in C# e anche io, per lavoro, programmo in C#:
Primo, che il linguaggio del C# è per molti aspetti assolutamente indentico al Java, di cui è infatti figlio diretto: C# discende da J++ che è la "versione Microsoft" del java. Dovrai solo sostituire alcune keywords (invece del simbolo : per derivare dovrai usare la parola "extends", tipo "public class Nomeclasse extends Baseclass", e invece di Using c'è Imports) e non avrai le classi del .NET a disposizione, ma la sintassi è la stessa.
Secondo, che il C# è pesante tanto quanto il Java, perché anche il C# gira su Virtual Machine: tutti i linguaggi .NET si compilano sempre in Intermediate Language, che è fatto in modo molto simile al Bytecode di Java, e l'IL appunto viene interpretato dalla MVM (Microsoft Virtual Machine) su Windows o da Mono su altri sistemi, esattamente come il Java è interpretato dalla JVM (Java Virtual Machine).
Il Java era estremamente pesante fino a qualche anno fa, ma da un paio d'anni a questa parte la JVM ha ottenuto delle ottimizzazioni veramente efficaci, anche copiando alcune soluzioni adottate da Microsoft con il C# e il .NET, quindi le sue prestazioni sono molto migliori di quello che comunemente si crede.
Certo non raggiungerà mai i livelli del C++, perché comunque c'è una Virtual Machine in mezzo.