Questions every good Java/Java EE Developer should be able to answer? [closed]

I was going through Questions every good .Net developer should be able to answer and was highly impressed with the content and approach of this question, and so in the same spirit, I am asking this question for Java/Java EE Developer.

What questions do you think should a good Java/Java EE programmer be able to answer?

I am marking this question as community wiki as it is not user specific and it aims to serve programming community at large.

Looking forward for some amazing responses.

EDIT: Please answer questions too, as suggested in the comments, so that people could learn something new regarding the language, too.


What is the relationship between hashCode() and equals()? What is the significance of these methods? What are the requirements for implementing them?


What is the difference between Set, Map and List?

I'm still amazed how many people don't know this one in a telephone interview.