色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

jvm堆內(nèi)存和容器java內(nèi)存

JVM是Java虛擬機(jī),堆內(nèi)存是在JVM內(nèi)部管理的,一般我們用來存儲(chǔ)對(duì)象。而Java容器指的是數(shù)據(jù)結(jié)構(gòu),比如List、Map、Set等,這些容器的內(nèi)存分配也是在堆內(nèi)存中進(jìn)行的。

在Java中,我們使用new關(guān)鍵字來創(chuàng)建對(duì)象,對(duì)象會(huì)被分配到堆內(nèi)存中。當(dāng)一個(gè)對(duì)象沒有任何引用指向它時(shí),它就成為了垃圾,Java虛擬機(jī)會(huì)在合適的時(shí)候自動(dòng)回收這些垃圾。

// 創(chuàng)建一個(gè)字符串對(duì)象
String str = new String("hello world");

Java內(nèi)存中的容器,如ArrayList,也是存儲(chǔ)在堆內(nèi)存中的對(duì)象。當(dāng)我們創(chuàng)建ArrayList時(shí),它會(huì)分配一定的內(nèi)存,用來存儲(chǔ)數(shù)據(jù)。當(dāng)ArrayList中存儲(chǔ)的元素達(dá)到內(nèi)存容量上限時(shí),它會(huì)自動(dòng)增加內(nèi)存容量。

// 創(chuàng)建一個(gè)ArrayList對(duì)象
ArrayList list = new ArrayList();
list.add("hello");
list.add("world");

需要注意的是,Java虛擬機(jī)會(huì)維護(hù)一個(gè)對(duì)象的引用計(jì)數(shù),當(dāng)對(duì)象被多個(gè)引用指向時(shí),它的引用計(jì)數(shù)會(huì)增加。如果一個(gè)引用失效,它的引用計(jì)數(shù)會(huì)減少。只有當(dāng)對(duì)象的引用計(jì)數(shù)為0時(shí),才會(huì)被回收。

// 創(chuàng)建兩個(gè)字符串對(duì)象
String str1 = new String("hello");
String str2 = new String("world");
// 將str1和str2分別賦值到list中,它們的引用計(jì)數(shù)分別為2
list.add(str1);
list.add(str2);
// 將str1的引用賦值為null,它的引用計(jì)數(shù)減少1
str1 = null;
// 此時(shí)str1的引用計(jì)數(shù)為1,str2的引用計(jì)數(shù)為2

總的來說,在Java中,堆內(nèi)存和容器內(nèi)存都是動(dòng)態(tài)分配的,并且都受到Java虛擬機(jī)的管理和控制。