值调用(call by value)

    在程序语言设计中, 值调用是表示方法接收到的是调用者提供的值。而引用调用表示方法接收的是调用者提供的变量位置。在Java中使用的是什么调用的呢,我们来看一个例子。

    

    

    在高校里面,某些所谓的知名教授,跟大家说,程序语言设计中方法有实参、形参。其实呢,早在1990年,美国的计算机界把根本没这叫法,这种叫法只能让人对方法的调用更晕。

    运行上述程序,可以看到输出的结果为:

    i = 10

    x = 30

   方法的参数有两种形式,基本数据类型与对象引用。

    上面的例子,可以看到,一个方法不可能修改一个基本数据类型。

    其实,java中所有方法使用的是值调用,就是说,方法得到的是参数值的一个拷贝。

    可能有人不同意了,认为还有引用调用。

    OK,我们再看一个例子。

 

    

    如果java的方法使用的有引用调用,那这个swap()交换函数应该生效,得到的结果应该是我们想的那样。

    实际上运行得到的结果却是:

        a.i = 10

        b.i = 20

   我们可以画图理解上面的程序。

                                                       ps:这个csdn写博的编辑器要让让我疯了...太麻烦

    

    

    

 

 

 

 

    

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值