您的类JavaApplication1具有字段JavaApplication1 ja,该字段保存JavaApplication1类的另一个实例,它也具有自己的ja字段,该字段包含JavaApplication1的另一个实例,依此类推.
换句话说,当您创建JavaApplication1的实例时,此实例将创建其JavaApplication1的内部实例,并且此内部实例将创建另一个JavaApplication1实例,该实例将再次创建实例JavaApplication1 …,直到堆栈已满.
因此,当您在main方法中运行此代码时
JavaApplication1 ja1 = new JavaApplication1();
这样的事情发生
+-----------------------------------------------+
ja1 -> | JavaApplication1 instance |
+-----------------------------------------------+
| |
| +------------------------------------+ |
| ja -> | JavaApplication1 instance | |
| +------------------------------------+ |
| | | |
| | +-------------------------+ | |
| | ja -> |JavaApplication1 instance| | |
| | +-------------------------| | |
| | | | | |
| | | ja -> .... | | |
| | +-------------------------+ | |
| +------------------------------------+ |
+-----------------------------------------------+
无论如何,我看不到ja字段曾在哪里使用,因此请考虑将其从代码中删除.