您的位置:首页 > 其它

堆 栈(转载)

2016-01-28 15:00 197 查看
堆栈:必须知道存储在堆栈内所有项的确切生命周期,以便上下移动堆栈指针。

栈解决程序的运行问题,即程序如何执行;堆解决的是数据存储的问题,即数据放在哪儿。

我们把对象拆开,你会发现,对象的属性其实就是数据,存放在堆中;而对象的行为(方法),就是运行逻辑,放在栈中。

1. 不要试图与C进行类比,Java中没有指针的概念

2. 程序运行永远都是在栈中进行的,因而参数传递时,只存在基本类型和对象引用的问题。不会直接传对象本身。

因为没有指针,所以它都是进行传值。

Java中,栈的大小通过-Xss来设置,当栈中存储数据比较多时,需要适当调大这个值,否则会出现java.lang.StackOverflowError异常。常见的出现这个异常的是无法返回的递归,因为此时栈中保存的信息都是方法返回的记录点。

JVM调优
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: