我已经在自己的博客上整理了一些相关信息。我发现的Cliff Click评论说:
僵尸方法是通过类加载使其代码无效的方法。通常,服务器编译器会针对非最终方法做出积极的内联决策。只要内联方法永远不会被覆盖,代码就是正确的。当子类被加载并且方法被重写时,编译后的代码将为以后的所有调用而中断。该代码被声明为“不可进入”(将来的调用者不再调用该损坏的代码),但是有时现有的调用者可以继续使用该代码。就内联而言,这还不够好;现有调用者的堆栈帧从嵌套调用返回到代码时(或仅在代码中运行时)被“优化”。如果没有更多的堆栈框架将PC固定在已损坏的代码中,则将其声明为“僵尸”-一旦GC解决了该问题,便可以将其删除。