- 相關(guān)推薦
Java內(nèi)存是如何劃分的
Java具有簡(jiǎn)單性、面向?qū)ο、分布式、健壯性、安全性、與可移植性、多線程、動(dòng)態(tài)性等特點(diǎn)。Java的內(nèi)存是怎么劃分的?下面就一起來(lái)了解看看吧!
Java內(nèi)存劃分
Java把內(nèi)存劃分成兩種:一種是棧內(nèi)存,一種是堆內(nèi)存。
棧內(nèi)存
存放對(duì)象:函數(shù)中基本類型的變量和對(duì)象的引用變量、靜態(tài)類方法
特點(diǎn):棧有一個(gè)很重要的特殊性,就是存在棧中的數(shù)據(jù)可以共享。假設(shè)我們同時(shí)定義:
inta=3;
intb=3;
編譯器先處理inta=3;首先它會(huì)在棧中創(chuàng)建一個(gè)變量為a的引用,然后查找棧中是否有3這個(gè)值,如果沒(méi)找到,就將3存放進(jìn)來(lái),然后將a指向3。
接著處理intb=3;在創(chuàng)建完b的引用變量后,因?yàn)樵跅V幸呀?jīng)有3這個(gè)值,便將b直接指向3。這樣,就出現(xiàn)了a與b同時(shí)均指向3的情況。
堆內(nèi)存
存放對(duì)象:用來(lái)存放由new創(chuàng)建的對(duì)象和數(shù)組。
特點(diǎn):在堆中分配的內(nèi)存,由Java虛擬機(jī)的自動(dòng)垃圾回收器來(lái)管理。
在堆中產(chǎn)生了一個(gè)數(shù)組或?qū)ο蠛,還可以在棧中定義一個(gè)特殊的變量,讓棧中這個(gè)變量的取值等于數(shù)組或?qū)ο笤诙褍?nèi)存中的首地址,棧中的這個(gè)變量就成了數(shù)組或?qū)ο蟮囊米兞俊?/p>
引用變量就相當(dāng)于是為數(shù)組或?qū)ο笃鸬囊粋(gè)名稱,以后就可以在程序中使用棧中的引用變量來(lái)訪問(wèn)堆中的數(shù)組或?qū)ο蟆?/p>
Q:static關(guān)鍵字,是一個(gè)修飾符,用于修飾成員(成員變量和成員函數(shù)),有什么特點(diǎn)
A:1,想要實(shí)現(xiàn)對(duì)象中的共性數(shù)據(jù)的對(duì)象共享?梢詫⑦@個(gè)數(shù)據(jù)進(jìn)行靜態(tài)修飾。
2,被靜態(tài)修飾的成員,可以直接被類名所調(diào)用。也就是說(shuō),靜態(tài)的成員多了一種調(diào)用方式。類名.靜態(tài)方式。
3,靜態(tài)隨著類的加載而加載。而且優(yōu)先于對(duì)象存在。
【Java內(nèi)存是如何劃分的】相關(guān)文章:
如何解決java內(nèi)存泄漏07-26
如何解決java內(nèi)存泄漏的問(wèn)題08-13
Java數(shù)組在內(nèi)存中是如何存放的08-21
Java內(nèi)存回收07-17
Java的內(nèi)存模型09-22
java程序運(yùn)行時(shí)內(nèi)存如何分配09-28
java內(nèi)存的詳細(xì)介紹06-04