Java中值传递和引用传递实例

题目描述:Java中值传递和引用传递实例

实例代码如下;

<span style="font-size:14px;">class Value{
	public int i=15;
}
public class CompareBasicTypes {
	public static void main(String[] args) {
		CompareBasicTypes test=new CompareBasicTypes();
		test.first();
	}
	
	public void first(){
		int i=5;
		Value value=new Value();
		value.i=25;
		//将value和i传递给second
		second(value, i);	
		System.out.println(value.i);
	}
	
	public void second(Value value,int i){
		i=0;
		value.i=20;
		Value value2=new Value();
		value=value2;
		System.out.println(value.i+" "+i);
	}
}</span>

代码运行结果如下;



结果分析:

1.当在first函数中调用second函数时,传递了两个参数,一个是Value类型的value,一个是int类型的i,所以对value的传递是引用传递,对i的传递是值传递

2.因为对i的传递是值传递,所以second函数中对i的修改并不会改变first中i的值

3.value的传递是引用传递,所以second(Value value,int i)中的value相当于一个指针,指向first中的value,当对其进行修改时,相当于直接对first中的value中的值进行修改

4.当执行这一句Value value2=new Value(); value=value2;代码时,second中的value指针指向了一个新的对象value2,但是first中的value对象的值不变,所以first函数中的输出仍然为20.


值传递和引用传递小结:

Java中的传递统称为值传递,但是又分为值传递和引用传递。

1.值传递包括:基本类型数据的传递、常量池中String的传递,即构建方式为String str=“haha”的方式。

2.引用传递:除了基本类型的传递和常量池中String的传递,其他都为引用传递,引用传递也不改变传递的地址,但是可以改变地址指向对象中的值。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值