JVM內存結構------堆,棧,方法區,以及堆和棧的區別

一 、 定義

  • 堆:FIFO隊列優先,先進先出JVM只有一個堆區被所有線程所共享!堆存放在耳機緩存中,調用對象的速度相對慢一些,生命週期由JVM的垃圾回收機制定。
  • 棧:FILO先進後出,暫存數據的地方。每個線程都包含一個棧區!棧存放在一級緩存中,存取速度較快,“棧是限定僅在表頭進行插入和刪除操作的線性表”。
  • 方法區:用來存放方法和static變量。

二 、存放的數據類型

  • 堆:用來存儲new出來的對象和數組
  • 棧:用來存儲基本數據類型變量和對象的引用變量的地址
  • 方法區:存儲方法和static變量

三、優缺點

  • 堆的優點 - 可以動態的分配內存的大小,生命週期不確定。缺點 - 速度略慢。
  • 棧的優點 - 速度快。缺點 - 存在棧中的數據大小和生命週期必須是明確的,缺少靈活性。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章