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.