[英]how jvm run program
程序1:當我編寫一個簡單的類B而不在Java程序中創建對象時。 JVM如何將內存分配給包含成員字段和成員函數的類代碼。
class B
{
int a=10;
public void print()
{
System.out.println("inside B class");
}
}
程序2:當我創建該類的對象時,jvm如何為對象分配內存...請參見下面的代碼
class B
{
int a=10;
public void print()
{
System.out.println("inside B class");
}
public static void main(String args[])
{
B b=new B();
b.print();
}
}
在此示例中,分配分為三個級別:
當類被加載時(通常是第一次在代碼中某個地方引用它),然后將為其結構,其代碼和靜態字段分配內存。
當創建實例( new B()
)時,將為非靜態字段和一些元數據(對象標頭)分配內存。 該內存在堆上。
當一個方法被調用時,堆棧中的內存將分配給該方法內部的局部變量。
這個站點非常有用,所以看看它。 鏈接,您將能夠了解jvm是如何運行程序的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.