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