搜索

java堆和栈的区别

发布网友 发布时间:2022-03-01 00:44

我来回答

2个回答

懂视网 时间:2022-03-01 05:05

1、功能不一样

栈内存用来存储局部变量和方法调用;堆内存用来存储Java中的对象。

2、异常错误展现方式不一样

如果栈内存没有可用的空间存储方法调用和局部变量,JVM会抛出java.lang.StackOverFlowError;如果堆内存没有可用的空间存储生成的对象,JVM会抛出java.lang.OutOfMemoryError。

3、空间大小不一样

栈的内存要小于堆内存,使用递归栈很快就会充满,递归没有及时跳出可能发生StackOverFlowError问题。

总结:

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

热心网友 时间:2022-03-01 02:13

在java中把内存分为堆内存和栈内存
其中栈内存主要是用来执行程序的,而且栈内存中存放的都是一些基本类型的变量和对象的引用变量,而且当栈内存的存储量达到最大时,java会释放掉一部分内存
public class A{
int a=5 //这就是一个基本类型的变量a
String s1='小红' //这也是一个基本类型变量,在占内存中就会开辟相应的空间用来存放 //s1和a
}
而堆内存主要是用来存放对象的,存放的是new创建的对象和数组,而且堆内存的回收是由JVM来做的
public class Dog{
int age=0;
String name="小花"
}
Dog d=new Dog();
/*这样的就会在堆内存中开辟一个空间,用来存放d这个创建起来的对象
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top