Everything Java does, C# does better. Java shouldn’t still struggle with generic arrays...but it does. Java should easily have first-class pointer support by now. C# does but Java doesn’t. Checked exceptions should have long been put to bed by now...but they haven’t.
The only reason to use Java atm is interop with another JVM language (e.g. Clojure) or to not get locked into the MS ecosystem. C# is otherwise just streets ahead at this point.