面向对象—基本数据和引用数据参数传递的过程

这里写图片描述

具体内存图解分析:
补充:
java对内存空间的划分为五部分
①栈②堆③方法区④本地方法区⑤寄存器
栈内存:存储的都是局部变量,理解局部变量-只要是在方法中定义的变量都是局部变量。
一旦变量的生命周期结束,该变量就被释放。
堆内存:存储的都是实体(对象),即以new定义的,每个实体都有一个首地址值,堆内存的变量都有默认的初始化值。
例如:int-0 double-0.0 boolean-false char-‘\u0000’
当实体不再使用时,就会被垃圾回收机制处理。

例一:
1,首先主方法在栈内存中开辟一片空间,即压栈,其中定义了一个局部变量x,并赋值为4。
2,show方法压栈,实参4传递给show方法,show方法执行将x的值更改为5功能,执行完,弹栈
3,然后输出打印的是主方法中的局部变量,即x=4。
4,最后主方法弹栈,整个程序结束。

例二:
其中有对象,即有堆内存。
1,首先主方法在栈内存中开辟一片空间,即压栈,然后在堆中开辟一段空间,其中对象有一个首地址值,不妨取个0x45的首地址值,对象中有成员x,x=0(默认初始化值)。
2,主方法中定义一个引用型局部变量d,其中d=0x45,d指向堆内存中首地址。
3,show方法压栈,show中也有一个引用型局部变量d,其中d的值也被赋值为0x45,注意两个d是不同的变量,但是是指向同一个对象,作用是将6传递给了d的成员x,然后show方法弹栈
4,然后执行输出打印语句,其中的d是主函数中的变量,然后指向对象,其中d.x=6.
5,最后主方法弹栈,整个程序结束。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值