java java中while(true)死循环会造成JVM内存溢出吗?

java中while(true)死循环会造成JVM内存溢出吗?1. 在死循环中定义局部变量会导致堆栈溢出,例如以下定义:while(true){int x=1;int arr[]=New int[10

java中while(true)死循环会造成JVM内存溢出吗?

1. 在死循环中定义局部变量会导致堆栈溢出,例如以下定义:

while(true){

int x=1;

int arr[]=New int[10];

}]因为堆栈空间存储局部变量、参数和其他对象,所以堆栈有一个默认深度,我记得是128M(内存问题,请指出)如果错误)。

2. 在启动循环中定义对象会导致堆内存溢出,如以下定义:

(true){

person P=new person()

}

对象的生成会占用时间和空间,因为内存空间有限,迟早会导致堆内存溢出。

所以我们写代码是为了养成一个好习惯,不在特殊情况下,不在循环中定义局部变量和对象。

如何计算Java中数据溢出的N值?

如果int溢出,可以将其更改为long。如果再长时间溢流,你可以好好照顾自己。int的四个字节有32位,long有64位。如果溢出,您可以找到一种方法将其转换为字符串拼接。我不认为正常的业务逻辑会长期泛滥。你提出的问题仍然可以解决,但我认为最有趣的方法是把它改成long,这样它就不会溢出