title: What are major differences between C# and Java?
body: <p>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.</p>
  
  <p>These are the ones I could come up with:</p>
  
  <ul>
  <li>Java is "platform independent". Well nowadays you could say there is the <a href="http://en.wikipedia.org/wiki/Mono_%28software%29" rel="noreferrer">Mono</a> 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 <a href="http://en.wikipedia.org/wiki/Common_Language_Runtime" rel="noreferrer">CLR</a> vs. <a href="http://en.wikipedia.org/wiki/JRE" rel="noreferrer">JRE</a> that we should compare here?</li>
  <li>Java doesn't support events and delegates. As far as I know.</li>
  <li>In Java all methods are virtual</li>
  <li>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.</li>
  </ul>
  
  <p>Please add others you think are relevant.</p>
  
  <p>Update:
  Just popped up my mind, Java doesn't have something like custom attributes on classes, methods etc. Or does it?</p>