java類的定義 jvm堆和棧的區(qū)別?
jvm堆和棧的區(qū)別?1. 堆棧:每當(dāng)啟動(dòng)一個(gè)新線程時(shí),Java虛擬機(jī)都會(huì)為它分配一個(gè)Java堆棧。JVM將只在Java堆棧上執(zhí)行兩個(gè)操作:堆棧按下或以堆棧幀為單位退出堆棧。每個(gè)線程都包含一個(gè)堆棧區(qū)域,
jvm堆和棧的區(qū)別?
1. 堆棧:每當(dāng)啟動(dòng)一個(gè)新線程時(shí),Java虛擬機(jī)都會(huì)為它分配一個(gè)Java堆棧。JVM將只在Java堆棧上執(zhí)行兩個(gè)操作:堆棧按下或以堆棧幀為單位退出堆棧。每個(gè)線程都包含一個(gè)堆棧區(qū)域,其中只存儲(chǔ)基本數(shù)據(jù)類型的對象和自定義對象(而不是對象)的引用,對象存儲(chǔ)在堆棧區(qū)域中。
2. 堆:存儲(chǔ)所有對象,每個(gè)對象都包含相應(yīng)的類信息——類的目的是獲取操作指令。JVM中的所有線程只共享一個(gè)堆。堆不存儲(chǔ)基本類型和對象引用,只存儲(chǔ)對象本身。