程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 淺談Javase內存流程圖,淺談javase流程圖

淺談Javase內存流程圖,淺談javase流程圖

編輯:JAVA綜合教程

淺談Javase內存流程圖,淺談javase流程圖


最近接觸OOP面向對象,學習了OOP、this、super、package、extends還有override,整體來說如果不清楚內存的流程的話,對這些知識會很混淆,在老師的幫助下,花了一張圖,能清楚的標示出代碼在內存中的流程

內存大致分為四個區域:1、靜態數據區    2、棧     3、堆   4、靜態數據區

編碼,編譯,調用運行,加載Jvm就不細說了,大家應該都清楚。

代碼首先在靜態代碼段開辟空間並命名,然後方法並在棧內存中開辟空間,在對內存中開辟空間,將對應的類復制到堆內存中,賦值並進行構造函數的代碼運算,最後將堆內存中對象的地址復制給對應的類的變量。

具體舉例代碼:

復制代碼
public class OOP_05{
    public static void main(String[] args){
        Animal a = new Animal(10);
        m_1(a);
        System.out.println( "main----->" + a.age );
        System.out.println( a );
    }

    public static void m_1(Animal a){
        a.age++;
        System.out.println( "m_1 --->" + a.age );
    }
}

class Animal{
    //Field
    int age;

    //Constructor
    Animal(int _age){
        age = _age;
    }
}
復制代碼

搞清流程時,必須先清楚類的組成有什麼:大致分為九類,1、入口方法  2、靜態變量  3、靜態方法  4、成員變量  5、成員方法  6、構造方法  7、靜態代碼段  8、成員代碼段  9、抽象方法

要知道內存中數據不能跨域訪問,否則會報錯,靜態方法不能調用非靜態方法

調用方法必須先開辟棧幀

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved