java哪些数据存在堆里哪些数据存在栈里

1.java哪些数据存在堆里哪些数据存在栈里2.堆栈的概念,对于java编程有什么用... 1.java哪些数据存在堆里哪些数据存在栈里
2.堆栈的概念,对于java编程有什么用
展开
 我来答
yeliandao
推荐于2016-11-27 · TA获得超过261个赞
知道答主
回答量:162
采纳率:0%
帮助的人:211万
展开全部
栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。

Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。

栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。
栈中主要存放一些基本类型的变量(,int, short, long, byte, float, double, boolean, char)和对象句柄。 栈有一个很重要的特殊性,就是存在栈中的数据可以共享。
wanjunfu
2010-11-03 · TA获得超过295个赞
知道答主
回答量:215
采纳率:0%
帮助的人:280万
展开全部
1、就Array arr = new Array();
而言,它的存储就分在等号两边。

先差分他 Array arr = new Array();

等价于
Array arr = null;//被称为初始化。
arr = new Array();//被称为实例化

初始化的时候,编译器自动在栈中,分配一个地址空间给arr.栈存放的是一个地址,可以这么认为。便于记忆,就把栈看做存放初始化的空间。

实例化的时候,编译器会分配一个堆的空间。存放变量等。如arr = new Array();就是存放在堆里的。String str = "GJHJH";这里的GJHJH也是存放在堆里的。

记住 栈的空间比堆的空间要小。

Java中。堆是自动去分配的。不像C需要去指定。很方便。但却牺牲了速度!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大衍之49
2010-11-03 · TA获得超过1049个赞
知道小有建树答主
回答量:1159
采纳率:0%
帮助的人:1072万
展开全部
堆栈概念的提出 只是出于数据安全考虑的,所以呢是不是存放在栈里取决于你怎么使用数据,递归就是始终栈的典型例子

堆,可以向成一块内存,你想怎么用就怎么用,怎么取数据,怎么放都行,就是像个个垃圾堆一样,不用考虑顺序的问题,而栈就想谷仓一样,只能从上面放,上面取,

其实这两个概念从现实什么中的堆 和 栈的实际事物就可以知道了

想想字典里面怎么解释堆和栈的吧

怎么使用取决于你的建模,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式