91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java方法調用在內存中怎么執行

發布時間:2023-04-19 09:36:11 來源:億速云 閱讀:117 作者:iii 欄目:編程語言

這篇文章主要介紹“java方法調用在內存中怎么執行”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“java方法調用在內存中怎么執行”文章能幫助大家解決問題。

一.前提

1.棧的內存原理圖

java方法調用在內存中怎么執行

2.JVM是怎么運行方法的???
  • 1.在運行階段的時候,classLoader類加載器會把class文件中方法對應的代碼片段放入內存區中的方法區中,以便于下次調用方法時,還能使用該方法。

  • 2.JVM在運行過程中,會把方法里面的代碼塊按照方法調用的先后順序壓棧入內存中的棧空間,按照方法里語句的執行順序(從上到下,從里到外)去進行彈棧與運行操作

二.調用(執行)過程

1.方法調用時的規則

方法首次調用時,會通過類加載器將方法的對應的代碼塊加載到內存中方法區

每次調用方法時相當于一次壓棧過程,當方法里面的語句全部執行完畢,就會把該方法進行彈棧操作(若不彈棧的話,到某個時候必會產生堆棧溢出異常)

2.示例代碼
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.整個程序的方法調用的過程圖

3.1 JVM會自動調用main方法,因此main方法首先壓棧,然后依次執行main方法里面的語句

java方法調用在內存中怎么執行

3.2 當遇到show1()方法時,會把show1()方法壓棧,并去執行show1方法里面的語句

java方法調用在內存中怎么執行

3.3 執行show1方法里面的語句時,當執行到show2()時,show1方法暫停,然后對show2方法壓棧,然后執行show2方法的內容

java方法調用在內存中怎么執行

3.4 當執行完show2方法里面的內容時,會對show2方法進行彈棧,返回至show1方法中調用show2方法的位置,若沒有對返回值有賦值操作,就會去執行后面的語句

java方法調用在內存中怎么執行

3.5 執行完show1方法后會對show1方法進行彈棧,返回show1方法調用處的位置,然后去執行show1方法調用處以及后面的語句

java方法調用在內存中怎么執行

4.示例代碼運行截圖

java方法調用在內存中怎么執行

關于“java方法調用在內存中怎么執行”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绥棱县| 米泉市| 墨玉县| 金堂县| 乌审旗| 仪征市| 成武县| 囊谦县| 武安市| 莫力| 太保市| 伊宁县| 聂拉木县| 印江| 兴化市| 墨玉县| 镇康县| 郯城县| 肃北| 麟游县| 陆丰市| 临西县| 胶南市| 普兰县| 军事| 龙岩市| 高密市| 常熟市| 台州市| 吉水县| 上杭县| 博客| 肇东市| 灵宝市| 佳木斯市| 大安市| 运城市| 九龙县| 库伦旗| 吐鲁番市| 修水县|