您好,登錄后才能下訂單哦!
這篇“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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。