How is an instance initializer different from a constructor?

This seems to explain it well:

Instance initializers are a useful alternative to instance variable
initializers whenever:

  • initializer code must catch exceptions, or

  • perform fancy calculations that can’t be expressed with an instance variable initializer. You could, of course, always write such code in
    constructors.

But in a class that had multiple constructors, you would have to repeat the code in each constructor. With an instance initializer, you
can just write the code once, and it will be executed no matter what
constructor is used to create the object. Instance initializers are
also useful in anonymous inner classes, which can’t declare any
constructors at all.

From: JavaWorld Object initialization in Java.

Leave a Comment