Honestly, as it currently stands, Java appears to me as merely a pared down version of C#. C# shares nearly all of the same major features, while adding in more useful ones like properties and Linq, plus the promise of many new features on the horizon, like the null propagating operator. All of those, plus the rest of Microsoft's development ecosystem, make it a much nicer language overall.
The only reason I don't think C# has taken over Java yet is because of how entrenched Java is, and it's wide cross-platform support. With mono, Silverlight, and Microsoft's newfound love for open-sourcing however, I think those arguments would be pretty much null if Java were to be introduced today.