5 回答

TA貢獻1784條經(jīng)驗 獲得超9個贊
1,Java的bytecode里面有方法的原型信息,編譯時有class文件即可
2,Java運行時從classpath里面尋找jar文件,再在jar文件里面找包名對應的a/b/c.class
3,是這樣的

TA貢獻1942條經(jīng)驗 獲得超3個贊
看一本關(guān)于講解jvm的書,具體的細節(jié),看看類加載,《深入jvm虛擬機》。
1、:全類名定義一個類,每個類被加載一次。
2、:你是想問怎么找到吧,我覺得和全類名比較類似。
最后個我沒懂你的意思

TA貢獻1817條經(jīng)驗 獲得超14個贊
我個人是這樣理解的:
1、c/c++編譯出的庫和java生成jar包這兩件事情是不等價的,jar包本質(zhì)上只是一個壓縮包;如果一定要類比,c/c++編譯的過程應該相當于java生成class文件的過程,也就是代碼轉(zhuǎn)換成機器(或虛擬機)可以理解并執(zhí)行的文件;
2、JAVA虛擬機會把目標class文件加載到內(nèi)存里,其中類的信息應該放到“方法區(qū)”,被實例化的時候,引用在棧、實例在堆(和c/c++的malloc或new類似)。
3、每一個類是通過 類加載器 + 包名 + 類名 三部分信息在JVM中唯一標識;
4、比較好的書有《深入理解java虛擬機》、《osgi原理與最佳實踐》;

TA貢獻2016條經(jīng)驗 獲得超9個贊
添加回答
舉報