當Java程序執(zhí)行時,類的字節(jié)碼文件被加載到內存,如果該類沒有創(chuàng)建對象,類的實例成員變量不會被分配內存。但是,類中的類變量,在該類被加載到內存時,就分配了相應的內存空間。
如果該類創(chuàng)建對象,那么不同對象的實例變量互不相同,即分配不同的內存空間,而類變量不再重新分配內存,所有的對象共享類變量,即所有的對象的類變量是相同的一處內存空間,類變量的內存空間直到程序退出運行,才釋放所占有的內存。

********************************************************************************************************************
當類的字節(jié)碼文件被加載到內存時。類的實例方法不會被分配入口地址,當該類創(chuàng)建對象后,類中的實例方法才分配入口地址,從而實例方法可以被類創(chuàng)建的任何對象調用執(zhí)行。
需要注意的是,當我們創(chuàng)建第一個對象時,類中的實例方法就分配了入口地址,當再創(chuàng)建對象時,不再分配入口地址。
也就是說,方法的入口地址被所有的對象共享,當所有的對象都不存在時,方法的入口地址才被取消。
對于類中的類方法,在該類被加載到內存時,就分配了相應的入口地址。從而類方法不僅可以被類創(chuàng)建的任何對象調用執(zhí)行,也可以直接通過類名調用。類方法的入口地址直到程序退出才被取消。
