基本类型传参,传的是值,引用类型传参传的是地址(底层源码进行解析)

Java内存主要分为堆、栈和方法区。方法区存储class文件,栈内存处理方法运行,堆内存用于new对象。基本类型的变量在栈中存储,随方法结束而消失;引用类型存储地址,对象在堆内存,不会因方法出栈而清除。
摘要由CSDN通过智能技术生成

那么他底层是怎么怎样运行的呢?接下来跟我一起来看看吧!

我们java内存分配有堆、栈、方法区....,

方法区:储存可以运行的class文件。

栈内存:方法运行时使用的内存,方法进栈运行,运行完毕后出栈。

堆内存:new出来的,都在堆内存中开辟一个小空间。

方法区中 加载Test.class ->main->change 在加载的方法的同时在栈内存中进行入栈 先入栈的是main方法 基本类型变量a=10会保存在栈内存中,不会创建堆内存。

当change()方法运行完会执行出栈,它所更改a的值也会随着change方法出栈消失。

方法区中 加载Test.class ->main->change 在加载的方法的同时在栈内存中进行入栈 先入栈的是main方法 存中,引用类型数组new int代码的时候,系统会在堆内存创建一块内存给arrs,并把地址返回给arrs。

在传参的时候是通过堆内存中的地址传给change,在change 方法中会拿着传递过来的地址在堆内存中找到arrs这个数组,并把arrs[1]上面的值改为222.随着方法运行完,change出栈,堆内存中的arrs是不会清理的。

总结:创建基本类型不会在堆内存开辟空间存储,基本类型会随着方法的出栈而消失,基本类型传参,传的是值,引用类型传参传的是地址。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值