由栈空间、堆空间、方法区组成
1.栈空间
存储局部变量。
存储类对象的引用。
2.堆空间
存储类对象的数据成员的引用
3.方法区
存储类的函数方法、静态变量、常量池
具体例子
int i = 1;//定义一个常量
那么,它会被存储在栈空间。
public class Dog {
private String name;
public Dog(String name) {
this.name = name;
this.count++;
}
public void print() {
System.out.println("Dog's name: " + name);
}
public static void main(String args[]){
Dog d1 = new Dog("Kitty");
Dog d2 = new Dog("Mary");
d1.Print();
}
}
那么,情况如下图