楼主请看,这就是个典型的内存溢出的代码形式。
在12行:首先主函数main进栈,然后创建14行new Demo();对象。
接着运行class Demo类,运行Demo d = new Demo();就会在堆空间也创建new Demo();对象,主函数中的对象和类中的对象来回创建,最终导致堆内存溢出。
解决办法:要想修改此程序只需要在第3行中,加上static即可,如下图
这样的话,当程序运行时,因为static Demo d = new Demo();是静态的,就在方法区中已经创建了,就不会再在堆内存中创建new Demo对象,这样的话,就能保证程序的正常运行了。
希望我说的能对你起到帮助,要是有错误,欢迎指正~~~!{:soso__8961432591078930798_3:}
|