java中while(true)死循环会造成jvm内存溢出吗?
1、把局部变量定义在死循环里面会造成栈溢出,诸如下面的定义:
while(true){
intx=1;
intarr[]=newint[10];
}
因为栈空间存储局部变量、参数等对象,栈是有默认深度的,我记得是128m(记忆问题,错了请指出)。
2、把对象定义在起循环里面会产生堆内存溢出,诸如下列定义:
while(true){
personp=newperson()
}
对象的生成是占时间和空间的,因为你的内存空间有限,早晚会产生堆空间内存溢出。
所以大家写代码要养成良好习惯,不在特殊情况下,不要把局部变量和对象定义在循环里面。
原文标题:evict什么意思中文 java中while(true)死循环会造成JVM内存溢出吗?,如若转载,请注明出处:https://www.ycyjhw.com/news/32902.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「永洁号」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。