JVM 如何验证在装入类时是否存在潜在的操作数堆栈溢出?
2022-09-03 06:53:31
回顾一些演示,我遇到了以下声明:当JVM加载一个类时,它可以分析其内容并确保操作数堆栈没有溢出或下溢。我发现很多来源都提出了相同的主张,但没有具体说明它是如何完成的。
我不清楚如何使用静态分析进行这种验证。假设我有一个(恶意的)方法,它获取一些值作为参数,并使用它来执行一系列弹出。在加载时,迭代次数是未知的,因为它取决于方法调用方给出的参数。因此,在我看来,只有在运行时才能确定是否会有下溢。我在这里错过了什么?