我的编程之路(java)4 传值和引用

本文深入探讨Java中数据类型的划分及其在内存中的存储方式,包括基础类型与引用类型的值传递和引用传递的区别,以及它们如何影响程序的运行。通过理解内存栈和内存堆的角色,读者将更好地掌握Java内存管理的核心概念。

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

java中数据的传递形式

数据从A到B有两种方式传递(A=B)

一是传值,相当于A和B指的是两个东西,存储在不同位置的,但存储的内容相同,改变A的值对与B没有影响。

二是引用(传地址),相当于A和B指的是同一个东西,只是有A和B两个名字。不管是通过A对存储的内容修改还是通过B对内容的修改,都会同步改变。

这两种传递方式是由系统内部决定的。所以了解什么时候赋值的时候是值传递,什么时候是引用(传地址)是非常重要的。

数据类型

java中的数据类型分为基础类型和引用类型

基本类型有:
byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0

short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0

int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0

long:长整型,在内存中占64位,即8个字节-263~263-1,默认值0

float:浮点型,在内存中占32位,即4个字节,用于存储带小数点的数字(与double的区别在于float类型有效小数点只有6~7位),默认值0

double:双精度浮点型,用于存储带有小数点的数字,在内存中占64位,即8个字节,默认值0

char:字符型,用于存储单个字符,占16位,即2个字节,取值范围0~65535,默认值为空

boolean:布尔类型,占1个字节,用于判断真或假(仅有两个值,即true、false),默认值false

除此之外都是引用类型

内存分配

然后再来介绍java中内存的分配,java中内存分为内存栈和内存堆两种,基本类型是直接保存在内存栈中的,而引用类型则是保存该类型在内存堆中的地址在内存栈中。

可以这么理解,内存栈都是一条条的小纸条,纸条比较小,所以存储的内容就很有限,基本数据类型因为内容很少,最多也就8个字节,所以就直接写下纸条上了,而对于引用类型来说,引用类型可能有成千上万的字节,那么纸条就写不下了,只能把这些资料放在档案室(内存堆),纸条上写下它在档案室中的位置,需要的时候,就去档案室去找。

然后平常我们直接赋值的时候,就是改变内存栈的值(改变纸条上的内容),所以基本类型就是值传递,而引用类型就是传地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值