Q:

Why is `invokespecial` used to invoke `` method in java?

Why is invokespecial used to invoke <init> method in java?
I read at multiple places but could not understand the perfect reason? 
Any help would be appreciated.

A:

From here:

The main use of invokespecial is to invoke an object's instance initialization method, <init>, during the construction phase for a new object.

Also from here:

In other words, invokespecial is used to call methods without concern for dynamic binding, in order to invoke the particular class’ version of a method.

Second quotation is the most applicable to your question cause we know that calling constructor (<init>) method has always static binding.

A:

These link are useful with very simple language
http://arhipov.blogspot.in/2011/01/java-bytecode-fundamentals.html
http://commons.apache.org/bcel/manual.html
This article from ibm is also nice with good example
http://www.ibm.com/developerworks/ibm/library/it-haggar_bytecode/

