堆 栈(转载)

来源:互联网 发布:日本人长相知乎 编辑:程序博客网 时间:2024/05/22 01:47

堆栈:必须知道存储在堆栈内所有项的确切生命周期,以便上下移动堆栈指针。


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

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


         1. 不要试图与C进行类比,Java中没有指针的概念
         2. 程序运行永远都是在栈中进行的,因而参数传递时,只存在基本类型和对象引用的问题。不会直接传对象本身。
因为没有指针,所以它都是进行传值。
 
     Java中,栈的大小通过-Xss来设置,当栈中存储数据比较多时,需要适当调大这个值,否则会出现java.lang.StackOverflowError异常。常见的出现这个异常的是无法返回的递归,因为此时栈中保存的信息都是方法返回的记录点。




JVM调优




0 0
原创粉丝点击