public class Hero {
String name = "盖伦";
public void show() {
int num = 10;
System.out.println(this.name + "你好" + num);
}
}
public class Test {
public static void main(String[] args) {
Hero hero=new Hero();
hero.attack();
}
}
- 第一步
加载Hero.class和 Test.class到方法区; - 第二步
由jvm执行main方法,并将main方法加载到栈内存执行,在main方法中创建Hero类的变量hero; - 第三步
在堆内存中创建Hero对象,并且成员变量name在堆内存中随着对象的创建而创建; - 第四步
把堆内存中Hero对象的地址值,赋值给栈内存的变量hero; - 第五步
调用hero.attack(),attack方法在栈内存中开辟空间,num随着方法的调用而创建,并执行attack()方法中的其他代码;