标签: java compiler-construction constructor jvm
为什么invokespecial用于在java中调用<init>方法?
invokespecial
<init>
我在多个地方看过但却无法理解完美的理由?
任何帮助都将不胜感激。
答案 0 :(得分:4)
来自here:
invokespecial的主要用途是在新对象的构建阶段调用对象的实例初始化方法<init>。
同样来自here:
换句话说,invokespecial用于调用方法而不关心动态绑定,以便调用特定类的方法版本。
第二个引文对您的问题最适用因为我们知道调用构造函数(<init>)方法始终是静态绑定。
答案 1 :(得分:3)
这些链接对于非常简单的语言非常有用
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/