java中heap和stack的區別
阿新 • • 發佈:2019-02-13
1、java堆
java堆是用於儲存java物件的記憶體區域,堆的大小在JVM啟動時就一次向作業系統申請完成,通過-Xmx和-Xms兩個選項來控制大小,Xmx表示堆的最大大小,Xms表示初始大小。一旦分配完成,堆的大小就將固定,不能在記憶體不夠時再向作業系統重新申請,同時當記憶體空閒時也不能將多餘的空間交還給作業系統,
在java堆中記憶體空間的管理由JVM控制,物件建立由JAVA應用程式控制,但是物件所佔的空間釋放由管理堆記憶體的垃圾收集器完成,根據垃圾收集(GC)演算法的不同,記憶體的回收方式和時機也不同,