jvm加載class文件原理 java中,靜態(tài)方法被調(diào)用是,存儲(chǔ)在內(nèi)存的哪個(gè)區(qū)域?是棧?還是放大區(qū)?還是兩者都有?
java中,靜態(tài)方法被調(diào)用是,存儲(chǔ)在內(nèi)存的哪個(gè)區(qū)域?是棧?還是放大區(qū)?還是兩者都有?堆區(qū)域:1。存儲(chǔ)所有對(duì)象,每個(gè)對(duì)象都包含相應(yīng)的類信息。(該類的目的是獲取操作說(shuō)明)2。JVM中的所有線程只共享一個(gè)堆
java中,靜態(tài)方法被調(diào)用是,存儲(chǔ)在內(nèi)存的哪個(gè)區(qū)域?是棧?還是放大區(qū)?還是兩者都有?
堆區(qū)域:
1。存儲(chǔ)所有對(duì)象,每個(gè)對(duì)象都包含相應(yīng)的類信息。(該類的目的是獲取操作說(shuō)明)
2。JVM中的所有線程只共享一個(gè)堆。堆不存儲(chǔ)基本類型和對(duì)象引用,只存儲(chǔ)對(duì)象本身的堆棧:1。每個(gè)線程都包含一個(gè)堆棧,它只存儲(chǔ)基本數(shù)據(jù)類型和自定義對(duì)象的引用(而不是對(duì)象),對(duì)象存儲(chǔ)在heap 2中。每個(gè)堆棧中的數(shù)據(jù)(原始類型和對(duì)象引用)都是私有的,其他堆棧無(wú)法訪問它。
3. 堆棧分為三個(gè)部分:基本類型變量區(qū)、執(zhí)行環(huán)境上下文和操作指令區(qū)。方法區(qū):1。它也被稱為靜態(tài)區(qū)域。和堆一樣,它也被所有線程共享。方法區(qū)域包含所有類和靜態(tài)變量。2方法區(qū)域包含在整個(gè)程序中總是唯一的元素,例如類和靜態(tài)變量。
java能否根據(jù)一個(gè)類名classname獲取當(dāng)前內(nèi)存中的所有此類實(shí)例對(duì)象?
我們需要使用什么場(chǎng)景?
除非您創(chuàng)建一個(gè)對(duì)象并將其放在一個(gè)統(tǒng)一的位置來(lái)存儲(chǔ)引用,否則它類似于spring將托管bean放入映射結(jié)構(gòu)中,在使用注入時(shí)從映射中獲取它,然后分配一個(gè)值。