我运行Java程序,它很长时间没有结束。我想这可能是代码中的无限循环,但我无法看到代码(无法对其进行修改)。
如何判断它是否处于无限循环中?
这是一个面试问题,我的回答是判断PC(程序计数器)是否循环。但面试官给了我提示use stack and heap of that program
......
答案 0 :(得分:3)
理论上,你不能。这就是暂停问题。
实际上,您可以检查调用堆栈中的周期。一旦内存耗尽并转储堆栈跟踪,Java就会崩溃。单调乏味,可能有用。
答案 1 :(得分:-9)
我认为你可以使用try / catch方法。
离。
尝试{
} catch(例外e){ System.err.println(" Infinte Loop Detcted:");