Java程式開發中的簡單記憶體分析

來源:互聯網
上載者:User

首先記憶體總體分為了4個部分,包括 stack segment  、heap segment、code segment 、data segment ;

其中我們程式中用關鍵字new出來的東西都是存放在heap segment;

程式中的局部變數存放在stack segment,這些局部變數是在具體方法執行結束之後,系統自動釋放記憶體資源(而heap segment中的資源需要java記憶體回收機制來處理);

程式中的方法,是記憶體中的code segment中的,而且是多個對象 共用一個代碼空間地區;

static靜態變數,需要放在記憶體中的data segment中,

下面是一個例子程式的記憶體分析

class Demo{<br /> private int firistNum;private int secondNum;<br /> public static int temp = 3;</p><p> public Demo(int firstNum,int secondNum){<br /> this.firstNum = firstNum;<br /> this.secondNum = secondNum;<br /> }<br />}</p><p>public class Test{<br /> Public static void main(String [] args){<br /> Demo test = new Demo(3,4);<br /> }<br />}<br />

下面是記憶體空間分配的過程

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第二步執行過程

這是整個main方法執行過程中的記憶體空間分配,分析好記憶體對以後分析邏輯性錯誤的程式非常重要。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.