堆栈:必须知道存储在堆栈内所有项的确切生命周期,以便上下移动堆栈指针。
我们把对象拆开,你会发现,对象的属性其实就是数据,存放在堆中;而对象的行为(方法),就是运行逻辑,放在栈中。
2. 程序运行永远都是在栈中进行的,因而参数传递时,只存在基本类型和对象引用的问题。不会直接传对象本身。
因为没有指针,所以它都是进行传值。
Java中,栈的大小通过-Xss来设置,当栈中存储数据比较多时,需要适当调大这个值,否则会出现java.lang.StackOverflowError异常。常见的出现这个异常的是无法返回的递归,因为此时栈中保存的信息都是方法返回的记录点。