For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习Java编程等互联网技术,而本文我们就通过案例分析来简单了解一下,Java虚拟机栈基础知识分享。
Java虚拟机栈是线程私有的,与线程同生共死。Java虚拟机中有一个个存储栈帧。Java的栈能够存储局部变量与部分返回结果,并参与函数的调用与返回。因为Java虚拟机栈只push或pop栈帧,不直接操作Java虚拟机栈,栈帧可能被堆分配。Java虚拟机栈的内存不需要连续。
概述
Java虚拟机栈描述的是Java函数执行的线程内存模型。每个函数被执行时,Java虚拟机会同步创建一个栈帧用于存储局部变量标配、操作数栈、动态链接和函数返回地址等信息。函数被调用直至执行完毕的过程,就对应着一个栈帧在虚拟机中入栈和出栈的过程。
栈的存储
(1)栈是线程私有,栈中的数据都已栈帧形式存在。栈帧是栈的基本单位;
(2)线程中正在执行的函数都有其对应的栈帧;
(3)栈帧是一个内存区块,是一个数据集合,其中存储着函数执行过程中的数据信息;
栈的运行原理
(1)JVM直接对Java栈的操作只有两个,就是对栈帧的压栈和出栈。
(2)在同一线程同一时间下,只会有一个活动的栈帧,且该栈帧是当前正在执行的函数对应的栈帧,即栈顶栈帧也称为“当前栈帧”。
(3)执行引擎运行的所有字节码指令只针对当前栈帧进行操作。
(4)若方法中调用了其他方法,对应的新的栈帧就会被创建,放在栈顶,成为新的当前栈帧。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。