java中方法调用在内存中的体现

Posted 安卓笔记侠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中方法调用在内存中的体现相关的知识,希望对你有一定的参考价值。

在java中,方法以及局部变量(即在方法中声明的变量)是放在栈内存上的。当你调用一个方法时,该方法会放在调用栈的栈顶。栈顶的方法是目前正在执行的方法,直到执行完毕才会从栈顶释放。我们知道,栈是一种执行”先进后出”的数据结构。我在下面举些实际的例子。先看代码。

public void  graduate()//第一个方法

{

study();

}

public void  study()//第二个方法

{

readBooks();

}

public void readBooks()//第三个方法

{

boolean done = true;

}

第一个方法在执行过程中会调用第二个方法,此时,第一个方法在栈中被压在下面,第二个方法进栈,置于栈顶,第二个方法在执行的时候调用第三个方法,此时,第二个方法被压入下面,第三个方法进栈,至于栈顶,栈顶上的方法就是目前正在执行中的。

调用第一个方法
graduate()
 调用第二个方法
study()
graduate()

 

调用第三个方法
readBooks()
study()
graduate()

 

当第三个方法执行完毕
study()
graduate()

以上是关于java中方法调用在内存中的体现的主要内容,如果未能解决你的问题,请参考以下文章

java中,静态方法被调用是,存储在内存的哪个区域?是栈?还是放大区?还是两者都有?

java中的静态方法有啥作用?

JVM:方法调用

Java中,复写了toString方法,如何再调用复写前的toString方法?

Java中的递归详解

Java基本数据类型储存位置