both of them are more modern than C++, and probably take short learning curve.
Only some small difference.
C# support property,which is same as bcb and delphi, but java don't.
Both runs slow, while C# is a slightly faster than the other.
Java is said to be crossplatform, mainly because its byte code is intepreted and excuted on patform specific virtual machine.
C# only works on windows. Although some rumor say someone will port it to BSD/Linux, but I guess that's mainly for marketing reason, hardly to be practical useful on other platform.
The only major difference is their boss:
C# is from M$, which already proved to be the winner in each battle.( vs IBM on DOS, vs Apple on windows, vs Borland on VC, vs NetScape on IE, vs Lotus on word)
Java is from Sun, and promoted by IBM.
The disadvantage of C# is it comes later than Java. But M$ always come later.