Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有类定义n JAVA。
class ABC { public static final ABC A = new ABC(); public static final ABC B = new ABC(); }
当我调用 new ABC() 时,它运行良好,没有任何错误。但是如果我删除静态这个词,它会遇到堆栈溢出错误。我知道静态字段会启动一次。但在这种情况下,初始化本身是递归的。所以理想情况下,即使使用静态属性,它也应该给出相同的错误。你能解释一下吗。谢谢!
您自己回答了这个问题:静态字段启动一次。这正是代码不会进入无限递归的原因。您可以自己附加调试器来检查这个事实:)