1

它是 32 位 / 64 位,具体取决于 JVM,还是因为在寻址函数时我们真的需要那么多的地址可能性?

当然,我们永远不需要像类型数量那样多的可能性,而结果函数的数量永远不会达到这些数字?

4

1 回答 1

1

迄今为止最简单的实现使用函数的“真实”/完整地址,无论架构上可能存在问题(例如函数序言的第一条指令的虚拟地址)。所以,是的,这样的函数指针可能会是一个大字。这是一件好事!

大小并不像对象引用或对象头那么重要,因为无论有多少实例,每个方法在整个过程中只有一个这样的指针。此外,任何缩小地址的方案都意味着您需要额外的操作来调用指向的函数(一些间接或一些算术)。那会很糟糕,因为每次调用虚拟方法(优化之前的所有方法,优化之后仍然有很多)时都必须发生这种情况。

于 2013-10-12T10:08:14.183 回答