A constructor in Java is a special method used to initialize objects. There are two types of constructors: a default constructor that has no parameters or all parameters have default values, and is automatically generated if no other constructor is defined, and a parameterized constructor that has a specific number of parameters to provide different initial values to objects when they are created. The constructor is called when a new object is instantiated.