java堆和棧的區別是什么呢?讓我們一起了解一下吧!
1、作用不同
棧內存用來存儲局部變量和方法調用;堆內存用來存儲Java中的對象。
2、獨有或共享屬性不同
棧內存歸屬于單個線程,每個線程都會有一個棧內存,其存儲的變量只能在其所屬線程中可見,即棧內存可以理解成線程的私有內存;而堆內存中的對象對所有線程可見,堆內存中的對象可以被所有線程訪問。
3、異常錯誤展現方式不同
如果棧內存沒有可用的空間存儲方法調用和局部變量,JVM會拋出java.lang.StackOverFlowError;而如果是堆內存沒有可用的空間存儲生成的對象,JVM會拋出java.lang.OutOfMemoryError。
4、空間大小不同
棧的內存要遠遠小于堆內存。
拓展:Java是什么
java是由c語言發展而來的,面向對象的編程語言。 它不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的概念,功能強大且簡單易。 Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以清晰的思維方式進行復雜的編程。
Java具有簡單性、面向對象、分布式、健壯性、安全性、平臺獨立與可移植性、多線程、動態性等特點 。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等 。
今天的分享就是這些,希望能幫助到大家!
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com