java

public class Hello4 {
static Integer i;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
i = new Integer(2);
f1(i);
System.out.println(i);

}

public static void f1(Integer i) {
System.out.println("before-"+i);
i = new Integer(1);
System.out.println("after-"+i);
}

}
output:
before-2
after-1
2
java中传递给函数的是引用,引用相当于c语言中的指针,那为什么函数对引用i修改后,在main函数中却没有发生变化呢?
原因:对象类型参数:传引用,方法体内改变形参引用,不会改变实参的引用,但有可能改变实参对象的属性值。
但是根本原因是什么,还不太清楚。
我猜是不是因为c语言中指针本身也是一个数据类型(整型),而java中的引用没有具体的数据类型的原因?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值