2011-12-01 57 views
2

我知道函数只在内存中加载一次。我的疑问是...如果我们创建一个类的对象如何引用该函数?对象创建和函数调用的背后是什么?对象中是否有指向该函数的指针?关于类和对象的疑问

+0

先看看覆盖JVM内部的任何东西,比如[this](http://www.artima.com/insidejvm/ed2/jvm.html)或许多其他东西。 –

回答

1

我相信你正在寻找术语“virtual method table”。

这是语言(编译器)用于确定调用虚拟函数时调用什么方法(并且在Java中所有函数都是虚拟的)的机制。

1

创建对象时,只有它的数据字段正在创建(分配)。在整个程序运行期间,类方法永远驻留在内存中。

对象是否有指向该方法的指针或否是依赖于语言的。例如,在C++中,对象包含指向虚拟方法的指针,而常规和静态方法仅由其常量地址调用。