方法的加载 方法资源的释放
-
在JVM解释程序的时候,会将程序解释成.class文件,方法也是程序的一部分,此时方法还没有被调用。由于.class文件被加载到方法区,所以方法在没有被调用的时候是被加载到了内存中的方法区。
-
方法被调用的时候会在栈中被分配空间(资源)。入口方法main首先被压入栈中,main方法调用m方法,m方法也被压入栈
- 压入栈:给方法分配空间(资源)
-
当方法执行完毕,方法在栈中空间将被释放(资源)。由于栈有"后进先出""先进后出"的特点,m方法先结束将先被弹出栈,然后main方法被弹出栈
- 弹出栈:释放方法占用的空间(资源)
-
用栈模式管理方法调用时的空间分配,与"方法调用与返回"的规则相符
举例:分析原因
原因:方法在不停的被压入栈中,而没有方法出栈,直到栈满,栈内存溢出。
package triangle;
public class Test01 {
public static void main(String[] args) {
m();
}
public static void m(){
m();
}
}