What is the purpose of garbage collection in Java, and when is it used?
What is the difference between an Interface and an Abstract class