虚拟(重写)方法通常是通过某种表(vtable)实现的,该表最终是一个函数指针。每个方法调用都有必须通过该指针的开销。当将类标记为final时,则无法覆盖所有方法,并且不再需要使用表-这样可以更快。
某些VM(例如HotSpot)可能会更智能地执行操作,并知道何时不重写方法并酌情生成更快的代码。
这是有关HotSpot的一些更具体的信息。还有一些一般信息。