當前位置:生活全書館 >

IT科技

> java中堆與棧的區別

java中堆與棧的區別

java堆和棧的區別是什麼呢?讓我們一起了解一下吧!

1、作用不同

棧記憶體用來儲存區域性變數和方法呼叫;堆記憶體用來儲存Java中的物件。

2、獨有或共享屬性不同

棧記憶體歸屬於單個執行緒,每個執行緒都會有一個棧記憶體,其儲存的變數只能在其所屬執行緒中可見,即棧記憶體可以理解成執行緒的私有記憶體;而堆記憶體中的物件對所有執行緒可見,堆記憶體中的物件可以被所有執行緒訪問。

3、異常錯誤展現方式不同

如果棧記憶體沒有可用的空間儲存方法呼叫和區域性變數,JVM會丟擲java.lang.StackOverFlowError;而如果是堆記憶體沒有可用的空間儲存生成的物件,JVM會丟擲java.lang.OutOfMemoryError。

4、空間大小不同

棧的記憶體要遠遠小於堆記憶體。

java中堆與棧的區別

拓展:Java是什麼

java是由c語言發展而來的,物件導向的程式語言。 它不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的概念,功能強大且簡單易。 Java語言作為靜態物件導向程式語言的代表,極好地實現了物件導向理論,允許程式設計師以清晰的思維方式進行復雜的程式設計。

Java具有簡單性、物件導向、分散式、健壯性、安全性、平臺獨立與可移植性、多執行緒、動態性等特點 。Java可以編寫桌面應用程式、Web應用程式、分散式系統和嵌入式系統應用程式等 。

今天的分享就是這些,希望能幫助到大家!

標籤: 中堆 java 區別 不同
  • 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/dianzi/m32lq2.html