What are major differences between C# and Java?

I just want to clarify one thing. This is not a question on which one is better, that part I leave to someone else to discuss. I don’t care about it.
I’ve been asked this question on my job interview and I thought it might be useful to learn a bit more.

These are the ones I could come up with:

  • Java is “platform independent”. Well nowadays you could say there is the Mono project so C# could be considered too but
    I believe it is a bit exaggerating. Why? Well, when a new release of Java is done it is simultaneously available on all platforms it supports, on the other hand how many features of C# 3.0 are still missing in the Mono implementation? Or is it really CLR vs. JRE that we should compare here?
  • Java doesn’t support events and delegates. As far as I know.
  • In Java all methods are virtual
  • Development tools: I believe there isn’t such a tool yet as Visual Studio. Especially if you’ve worked with team editions you’ll know what I mean.

Please add others you think are relevant.

Update:
Just popped up my mind, Java doesn’t have something like custom attributes on classes, methods etc. Or does it?

7 Answers
7

Leave a Comment