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);
}
}