網站首頁 學習教育 IT科技 金融知識 旅遊規劃 生活小知識 家鄉美食 養生小知識 健身運動 美容百科 遊戲知識 綜合知識
當前位置:趣知科普吧 > IT科技 > 

java堆棧的區別

欄目: IT科技 / 發佈於: / 人氣:2.34W

1、作用不同

棧內存用來存儲局部變量和方法調用;堆內存用來存儲Java中的對象。

2、獨有或共享屬性不同

棧內存歸屬於單個線程,每個線程都會有一個棧內存,其存儲的變量只能在其所屬線程中可見,即棧內存可以理解成線程的私有內存;而堆內存中的對象對所有線程可見,堆內存中的對象可以被所有線程訪問。

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

如果棧內存沒有可用的空間存儲方法調用和局部變量,JVM會拋出java.lang.StackOverFlowError;而如果是堆內存沒有可用的空間存儲生成的對象,JVM會拋出java.lang.OutOfMemoryError。

4、空間大小不同

棧的內存要遠遠小於堆內存。

java堆棧的區別

拓展:Java是什麼

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

Java具有簡單性、面向對象、分佈式、健壯性、安全性、平臺獨立與可移植性、多線程、動態性等特點 。Java可以編寫桌面應用程序、Web應用程序、分佈式系統和嵌入式系統應用程序等 。

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

Tags:java 堆棧