jvm堆和棧的區(qū)別?
1. 棧:每當啟動一個新線程的時候,java虛擬機都會為它分配一個java棧。JVM只會對java棧執(zhí)行兩種操作:以棧幀為單位的壓棧或者出棧。每個線程包含一個棧區(qū),棧中只保存基礎數(shù)據(jù)類型的對象和自定義對象的引用(不是對象),對象都存放在堆區(qū)中 。
2. 堆:存儲的全部是對象,每個對象包含一個與之對應的class信息–class的目的是得到操作指令。jvm只有一個堆區(qū)(heap)被所有線程共享,堆區(qū)中不存放基本類型和對象引用,只存放對象本身。