堆和栈的区别? java堆和栈的区别

【堆和栈的区别? java堆和栈的区别】
1、功能不一样
栈内存用来存储局部变量和方法调用;堆内存用来存储Java中的对象 。

堆和栈的区别? java堆和栈的区别

文章插图

2、异常错误展现方式不一样
如果栈内存没有可用的空间存储方法调用和局部变量 , JVM会抛出java.lang.StackOverFlowError;如果堆内存没有可用的空间存储生成的对象 , JVM会抛出java.lang.OutOfMemoryError 。
堆和栈的区别? java堆和栈的区别

文章插图

3、空间大小不一样
栈的内存要小于堆内存 , 使用递归栈很快就会充满 , 递归没有及时跳出可能发生StackOverFlowError问题 。
堆和栈的区别? java堆和栈的区别

文章插图

总结:
java中堆和栈在功能、异常错误展现方式、空间大小等方面不一样 。


    特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。