栈内存是线程私有的,其生命周期和线程相同;函数
虚拟机栈描述的是Java方法执行的内存模型:执行一个方法时会产生一个栈帧随后将其保存到栈(先进后出)的顶部,方法执行完毕后会自动将此栈帧进行出栈。顶部的栈帧就表示的是当前的方法;线程
图介绍3d
栈帧主要组成成分指针
JVM中的运行时数据区包括:对象
栈是运行时的单位,而堆是存储的单位。blog
图解递归
JVM:Java虚拟机,全部程序都要求运行在JVM上,考虑到了可移植性问题。生命周期
Java程序中能够使用native关键字实现本地C函数的调用。可是这些都属于程序运行的辅助手段,而真正的程序都运行在“运行时数据区”之中。内存
运行时数据区分为如下几个内存空间:字符串
Java之中存在对象池的概念,对象池是对整个常量的常量池的规则破坏,由于在JVM启动的时候,全部常量都已经分配好空间,可是String中的intern()方法却能够打破限制,动态的进行常量池的内容设置。