说invoke-virtual
是调用虚方法,而说invoke-direct
是直接方法。
但是我不清楚什么是“虚拟方法”,什么是“直接方法”?
换句话说,调用什么样的方法,会调用什么样的invoke-virtual
方法invoke-direct
?
任何人都可以举一些具体的例子吗?
从http://source.android.com/devices/tech/dalvik/dex-format.html,直接方法是“任何静态、私有或构造函数”。
但是,静态方法有自己的invoke-static
操作码,因此invoke-direct
用于构造函数和私有方法。