Constructors are called when an object is created and have the same name as the class. They initialize objects and can be overloaded like methods to have different signatures. A default constructor is provided if none is defined. Destructors do not exist in Java, instead objects are garbage collected when no longer referenced by the system.