16Java基本数据类型与引用数据类型/值传递与引用传递

本文深入探讨了Java内存分配的机制,详细阐述了栈和堆的区别。基本数据类型存储在栈中,而引用数据类型如数组在堆中分配内存。方法调用时,基本数据类型进行值传递,复制实际参数的值给形参,而引用数据类型则是引用传递,形参和实参共享同一内存地址。因此,对于引用数据类型,方法内的修改会影响到原始数据。此外,文章通过实例展示了值传递和引用传递的不同效果,帮助读者理解这两种传递方式的本质差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、方法的内存

Java内存分配

方法调用的基本内存原理

二、基本数据类型与引用数据类型

1.基本数据类型

2.引用数据类型

二、方法的值传递与引用传递

1.值传递

2.引用传递

3.基本数据类型与引用数据类型的内存图


一、方法的内存

Java内存分配

栈:方法运行时使用的内存,方法被调用进栈运行

堆:new出来的,都在堆内存中开辟了一个小空间,堆里有地址

方法调用的基本内存原理

多个方法:主方法main,方法1,方法2,调用时依次进栈

方法2运算结束后出栈,再依次执行方法1,主方法运行后出栈

二、基本数据类型与引用数据类型

1.基本数据类型

整数类型

浮点数类型

布尔类型

字符类型

变量中存储的是真正的数据

特点:数据值是存储在自己的空间中,赋值给其他变量,也是赋的真实的值

2.引用数据类型

除了基本数据类型之外的数据类型

只要是new出来的都是引用数据类型,例如数组

 如图,arr存储的不是具体的数据,而是存储的地址值

所以说:

  • 变量中存储的是地址值
  • 引用指的是:使用了其他空间的数据

特点:数据值是存储在其他空间中,自己空间中存储的是地址值,赋值给其他变量,赋的是地址值

二、方法的值传递与引用传递

1.值传递

传递基本数据类型时,传递的是真实的数据,形参的改变,不影响实际参数的值

 没有new,由此判断是基本数据类型,单纯的值传递在change方法中对number的操作不会影响main方法中的number(变量是有作用范围的,只能在所属范围内有效)

2.引用传递

传递引用数据类型时,传递的是地址值,形参的改变,影响实际参数的值

3.基本数据类型与引用数据类型的内存图

基本数据类型:数据值是存储在自己的空间中
特点:赋值给其他变量,也是赋的真实的值。
 

引用数据类型:数据值是存储在其他空间中,自己空间中存储的是地址值。

特点:赋值给其他变量,赋的地址值。如果有一个变量将空间里面的值修改,则所有变量的对应的值都会被修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刹那芳华❀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值