从0学开发笔记-对象的内存

从0学开发笔记-对象的内存

1. 一个对象的内存图

在这里插入图片描述
方法区就是放class相关信息(成员方法信息和成员变量信息,这里应该是不是存储数据,应该是一些代码指令),但是执行方法的时候就要在堆中执行,对于每个方法在堆中都会分配一部分内存(先进后出的原则)用来存放这个方法中的变量,对于一个对象来说,栈当中存放的是对象的地址。一个对象是由一个类new(Java内存分配笔记)出来的,所以成员变量和成员方法都存在堆当中(栈中的只是堆的地址),这里要注意堆中的成员方法只是在堆中存一个方法区的地址,执行的时候还要去找方法区中的成员方法,接着再到栈中执行。

2. 两个对象的内存图

在这里插入图片描述
对于两个对象的内存和第一个没有差别,第一个对象什么样,第二个对象也什么样。

3. 两个引用指向同一个对象的内存图

将第一个对象的地址值赋值给第二个对象,赋值以后第二个对象就指向第一个对象在堆中的地址。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42595206/article/details/112901502
今日推荐