先入后出

栈是一个只有一个口的容器,先进入栈的会落到栈底,出栈的时候最后出。最后进入栈的,在栈顶,出栈时先出。

方法调用时,需要在内存中开辟一块存储空间做为线程栈空间

 每个线程都由自己的栈

调用方法时,会在栈中压入一个栈帧,用来存储这个方法的参数和局部变量

方法返回时 ,栈帧就会弹出,方法的参数和局部变量就会清除

方法调用时,调用栈不断处于涨落之中

如果调用的层级过深,调用栈可能会溢出

 

因为代码执行的速度很快,所以栈帧的生存时间很短,瞬间生灭

  所以局部变量无法被外部使用

此区域一共会产生以下两种异常:

  1. 如果线程请求的栈深度大于虚拟机所允许的深度(-Xss设置栈容量),将会抛出StackOverFlowError异常。
  2. 虚拟机在动态扩展时无法申请到足够的内存,会抛出OOM(OutOfMemoryError)异常

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-10-07
  • 2021-05-30
  • 2022-01-31
  • 2022-12-23
  • 2021-11-17
  • 2021-06-15
猜你喜欢
  • 2021-06-08
  • 2022-12-23
  • 2022-12-23
  • 2021-08-12
  • 2022-01-21
  • 2021-12-20
  • 2021-10-02
相关资源
相似解决方案