一:一个对象的内存图
说明:
1)方法区保存着.class相关数据
2)main方法先运行所以先进栈
3)对象名one其实就是个变量名,在main方法内,也是个局部变量。跟随main一起进栈出栈。
4)对象名保存着一个地址值,指向在堆中的对象。创建对象时给变量名赋值就是该对象的地址值。
5)堆中对象的成员方法保存着一个地址值,指向方法区中的方法。
6)成员方法在栈中完成后立马出栈,然后下一个成员方法进栈。
7)栈底的main方法执行执行完毕后也要出栈,此时程序执行完毕,所有内存消失(垃圾回收?)。
二:两个对象使用同一个方法:
两个对象间没有任何联系
三:两个引用指向同一个对象
指向同一对象,故两个引用的地址值相同。第二个引用的操作是在第一个引用操作完(方法执行完毕后)的基础上。