程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> java棧和堆區別,java棧堆區別

java棧和堆區別,java棧堆區別

編輯:JAVA綜合教程

java棧和堆區別,java棧堆區別


1, 垃圾回收機制僅僅作用於堆內存,與棧內存無關;

2, 棧:stack 棧的存取速度比堆快,效率高 保存局部變量和對象的引用值


3, 堆:保存較大的變量

4, 編譯器處理int a = 3 時,首先會在棧中創建一個變量為a的引用,然後查找棧中是否存在3這個值,如果不存在,就將3存放進來;
處理b = 3時,也是這樣,因為之前將3存放進來了,所以此時編譯器只需將創建b這個變量再指向3就行了(有利於節省空間)。
這個時候就出現a和b同時指向3的情況,但不影響他們的使用。如果此時又定義a = 4;,則需將4存放進內存,由a指向4,a值的修改不會影響到b值。

 

內存的劃分:
1,寄存器。
2,本地方法區。
3,方法區。
4,棧內存。
	存儲的都是局部變量。
	而且變量所屬的作用域一旦結束,該變量就自動釋放。
5,堆內存。
	存儲是數組和對象(其實數組就是對象) 凡是new建立在堆中。
	特點:
	1,每一個實體都有首地址值。
	2,堆內存中的每一個變量都有默認初始化值,根據類型的不同而不同。整數是0,小數0.0或者0.0f,boolean false char '\u0000'
	3,垃圾回收機制。

  

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