一个对象的内存图

216 阅读1分钟

一个对象的内存图

话不多说,上图:

Screenshot_20211101_194627.jpg 1、第一步:用main(String args[])方法进栈(也叫压栈)。
2、对于一个对象来说,它的成员方法,保存的其实是一个地址值----->通过地址调用方法区中成员方法(含有地址)。
3、对象(new Phone)本身也有地址,根据地址就能从栈中引用/修改变量和进行方法的引用。
4、注意:变量的引用和方法的引用也有不同

IMG_20211101_195921.jpg 5、❌表示出栈(在进栈过后必须进行出栈,栈中的内存清空)。
进栈(压栈)从下到上
出栈 从上到下

Screenshot_20211101_201220.jpg 1、定义一个Phone two,与Phone one井水不犯河水。
思考一下如何让两者产生联系?(关键在Phone two=new Phone();)

两个对象引用指向同一个对象的内存(空间)图

Screenshot_20211101_203241.jpg

使用对象类型作为方法的参数

Screenshot_20211101_205438.jpg注意:方法区中不光有class main(String args[])还有method(Phone param)。
当一个对象(或者类、数组)作为参数,传递到方法当中时,实际上传递进去的是对象的地址值。

使用对象类型作为方法的返回值

IMG_20211101_212428.jpg