一、回顾
之前我们曾经讲过,每款软件在运行的时候都会占用一块内存区域。Java也不例外,在运行的时候虚拟机也会占用一块内存空间,只不过为了更好的利用这块空间,JVM虚拟机会把它分成5个部分。每个部分都有其各自的作用。
目前我们只需要掌握栈和堆即可
二、方法调用的基本内存原理
以下代码由于没有new,所以这里用不到堆,我们只需要暂时去关注栈就行了。
这里面只有一个main方法,main方法被调用后就会进栈运行。然后从上往下执行里面的第一行代码。
第一行代码是定义了一个变量,所以在main方法里面就会有一个小空间,给这个小空间起个名字叫:number,并给它做了一个 int
类型的限定,表示这块小空间以后只能存储 int类型
的整数。这就是变量。100
就是真实存储在小空间的值。
往下就是输出number的值,number里面记录多少,它就打印多少。
当输出语句打印完后,方法中所有语句都执行完后,方法就需要出栈,变量也会随之消失。
三、方法在栈的流程
方法在栈里的运行过程是 先进后出
。
假设我现在有三个方法,第一次使用的是方法一,所以方法一就要进到栈里。
然后我调用方法二,方法二就要进去,压在方法一身上。
最后调用方法三,方法三就压在了最上面。
当要出去的时候,就是上面的最先出去,即方法三。
然后再是方法二出去。
最后是方法一出去。
示例解析图