When was instance initialization block added to Java?

I've been coding Java almost since it started, and yet I learned today that there exist instance initialization blocks (see: What is an initialization block?). I was sure that static initialization blocks were the only option.

Since when have the instance initialization blocks been part of the language? I'd appreciate if the answer is backed up by documentation.

Jon Skeet
people
quotationmark

Instance initializers were added in Java 1.1.

Old versions of language documentation are somewhat spread around the web (Oracle hasn't kept a lot of them) but this document appears to be a copy of original tutorial docs, and shows the language changes for 1.1:

  • Inner classes
  • Anonymous classes
  • Instance initializers
  • Array initialization
  • Class literals
  • More places where final can be used
  • transient having a defined meaning

people

See more on this question at Stackoverflow