这篇“java方法调用在内存中的执行过程是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java方法调用在内存中的执行过程是什么”文章吧。
1.在运行阶段的时候,classLoader类加载器会把class文件中方法对应的代码片段放入内存区中的方法区中,以便于下次调用方法时,还能使用该方法。
2.JVM在运行过程中,会把方法里面的代码块按照方法调用的先后顺序压栈入内存中的栈空间,按照方法里语句的执行顺序(从上到下,从里到外)去进行弹栈与运行操作
方法首次调用时,会通过类加载器将方法的对应的代码块加载到内存中方法区
每次调用方法时相当于一次压栈过程,当方法里面的语句全部执行完毕,就会把该方法进行弹栈操作(若不弹栈的话,到某个时候必会产生堆栈溢出异常)
public class Practice { public static void main(String[] args) { System.out.println("main 开始"); show1(); System.out.println("main 结束"); } public static void show1(){ System.out.println("show1 开始"); show2(); System.out.println("show1 结束"); } public static void show2(){ System.out.println("show2 开始"); System.out.println("show2 结束"); } }
3.1 JVM会自动调用main方法,因此main方法首先压栈,然后依次执行main方法里面的语句
3.2 当遇到show1()方法时,会把show1()方法压栈,并去执行show1方法里面的语句
3.3 执行show1方法里面的语句时,当执行到show2()时,show1方法暂停,然后对show2方法压栈,然后执行show2方法的内容
3.4 当执行完show2方法里面的内容时,会对show2方法进行弹栈,返回至show1方法中调用show2方法的位置,若没有对返回值有赋值操作,就会去执行后面的语句
3.5 执行完show1方法后会对show1方法进行弹栈,返回show1方法调用处的位置,然后去执行show1方法调用处以及后面的语句
以上就是关于“java方法调用在内存中的执行过程是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。