java入门总结——参数传递

本文深入探讨Java中的参数传递机制,包括值传递与引用传递的区别。详细解析了基本数据类型和对象类型在方法调用时如何进行值传递及引用传递,并通过实例说明其工作原理。

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

 

 

    在说参数传递之前,先说一下栈和堆。其实我对它们也不是很了解-_-|||,不过我们可以去问度娘,所以我这里简单说一下,栈相当于缓存,堆相当于内存。

 

Java中参数传递包括两种,一种是值传递,一种是引用传递。

 

先说值传递。

 

八种数据类型(byte short int long float double char Boolean)和 String 类储存于栈中,即在栈中直接开辟出相应数据类型大小的空间,存储下这个值。当一个值传给这个值时,就该为传入的值,例如:

 

int n//定义整型n,此时n被默认为0

 

n = 10//10传给n,在栈中被储存的数据n值被改变,此时为10

 

再如:

 

int n

 

int m = 10

 

n = m//m中存储的数据传给nn此时为10

 

从上面两个例子,我们发现参数传递就是传递原始参数的值。nm之间互不干扰,这很容易理解,nnmm,其中哪一个改变也不会影响另一个。

 

 

 

引用传递

 

Java中引用传递只适用于对象类型和数组。

 

实际上在实例化对象的时候,new关键字在堆中开辟了与该类对应的空间,而对象名在栈中,此时对象名储存的不是对象中的属性和方法,而是对象在堆中的地址。

 

假设我们已经通过同一个类创建好对象obj1 obj2,

 

obj1 = obj2

 

这时,obj2 传给obj1 的就是obj2 所储存的地址,也就是说obj1 此时储存的是obj2 的地址,这时候通过obj1 来调用方法和属性,都是obj2 的方法和属性。这时候obj2 就相当于两个对象名,而obj1 对象此时没有地址指向它。

 

对于数组也是如此。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值