jvm收藏(三)

 https://blog.csdn.net/u013241673/article/details/78574770

public class  PersonDemo
{
    public static void main(String[] args) 
    {   //局部變量p和形參args都在main方法的棧幀中
        //new Person()對象在堆中分配空間
        Person p = new Person();
        //sum在棧中,new int[10]在堆中分配空間
        int[] sum = new int[10];
    }
}


class Person
{   //實例變量name和age在堆(Heap)中分配空間
    private String name;
    private int age;
    //類變量(引用類型)name1和"cn"都在方法區(Method Area)
    private static String name1 = "cn";
    //類變量(引用類型)name2在方法區(Method Area)
    //new String("cn")對象在堆(Heap)中分配空間
    private static String name2 = new String("cn");
    //num在堆中,new int[10]也在堆中
    private int[] num = new int[10];


    Person(String name,int age)
    {   
        //this及形參name、age在構造方法被調用時
        //會在構造方法的棧幀中開闢空間
        this.name = name;
        this.age = age;
    }

    //setName()方法在方法區中
    public void setName(String name)
    {
        this.name = name;
    }

    //speak()方法在方法區中
    public void speak()
    {
        System.out.println(this.name+"..."+this.age);
    }

    //showCountry()方法在方法區中
    public static void  showCountry()
    {
        System.out.println("country="+country);
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章