对象在JVM中的存在形式
因为String又是一个引用类型,所以在堆里面存放的仍然是地址,而age是基本数据类型,所以可以直接将数据存放在堆里面。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5a50160835dac55e651e32d5471e1be4.png)
对象生成过程
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a8678c7244b956b2197032514cdd0f35.png)
- 首先把Person类的属性信息 和方法信息 加载到方法区内存区域中 类信息只加载一次,如果在创建相同类的对象 不用再加载类信息
- 在堆中执行 new Person()操作,但是此时所有成员变量均为默认值
- 在栈中开辟存储单元存储p1这个变量,p1里面存储的就是堆里面这个实例化对象的首地址
- 将p1的值赋给p2就是让p2中的值也为该实例化对象的地址