...">
瀏覽量:137次
java堆和棧的區(qū)別是什么呢?讓我們一起了解一下吧!
1、作用不同
棧內(nèi)存用來存儲(chǔ)局部變量和方法調(diào)用;堆內(nèi)存用來存儲(chǔ)Java中的對(duì)象。
2、獨(dú)有或共享屬性不同
棧內(nèi)存歸屬于單個(gè)線程,每個(gè)線程都會(huì)有一個(gè)棧內(nèi)存,其存儲(chǔ)的變量只能在其所屬線程中可見,即棧內(nèi)存可以理解成線程的私有內(nèi)存;而堆內(nèi)存中的對(duì)象對(duì)所有線程可見,堆內(nèi)存中的對(duì)象可以被所有線程訪問。
3、異常錯(cuò)誤展現(xiàn)方式不同
如果棧內(nèi)存沒有可用的空間存儲(chǔ)方法調(diào)用和局部變量,JVM會(huì)拋出java.lang.StackOverFlowError;而如果是堆內(nèi)存沒有可用的空間存儲(chǔ)生成的對(duì)象,JVM會(huì)拋出java.lang.OutOfMemoryError。
4、空間大小不同
棧的內(nèi)存要遠(yuǎn)遠(yuǎn)小于堆內(nèi)存。
拓展:Java是什么
java是由c語言發(fā)展而來的,面向?qū)ο蟮木幊陶Z言。 它不僅吸收了C++語言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的概念,功能強(qiáng)大且簡(jiǎn)單易。 Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚?,允許程序員以清晰的思維方式進(jìn)行復(fù)雜的編程。
Java具有簡(jiǎn)單性、面向?qū)ο?、分布式、健壯性、安全性、平臺(tái)獨(dú)立與可移植性、多線程、動(dòng)態(tài)性等特點(diǎn) 。Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等 。
今天的分享就是這些,希望能幫助到大家!
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點(diǎn),本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請(qǐng)您的相關(guān)內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們?cè)诖_認(rèn)后,會(huì)立即刪除,保證您的版權(quán)。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776