A constructor is used to create objects and has the same name as the class with no return type. A method is an ordinary member function that can have its own name and return type. The purpose of garbage collection is to identify and discard objects no longer needed by a program to reclaim memory. An object becomes eligible for garbage collection when it is unreachable. Synchronization controls access to shared resources for multithreading by preventing one thread from modifying a variable while another thread is using it, which can cause errors. An abstract class cannot be instantiated and is meant to serve as a template for subclasses to extend, while an interface can only declare constants and abstract methods but provides no implementation.