为什么invokespecial曾经在java中调用<init>方法?
invokespecial
<init>
我在多个地方读过但却无法理解完美的理由?
任何帮助,将不胜感激。
来自here:
invokespecial的主要用途是在新对象的构造阶段调用对象的实例初始化方法<init>。
也来自here:
换句话说,invokespecial用于调用方法而不关心动态绑定,以便调用特定类的方法版本。
第二个引用是最适用于你的问题因为我们知道调用构造函数(<init>)方法总是静态绑定。
这些链接对于非常简单的语言很有用
http://arhipov.blogspot.in/2011/01/java-bytecode-fundamentals.html
http://commons.apache.org/bcel/manual.html
来自ibm的这篇文章也是很好的例子
http://www.ibm.com/developerworks/ibm/library/it-haggar_bytecode/