java函数传参传递的一定是值!

对于Java函数的参数传递,在Java当中,只会进行数值的传递。
普通好理解,像是int,double类型,传递进函数的一定是数值。

但是对于Java对象的传递,如何理解传递的是数值呢?
其实呀,Java对象的函数参数传递,传递的是引用,其实就是对象所在的内存地址,就是把对象所在的内存地址复制到一个 临时变量当中,传入了函数而已。

因此,在函数内部,可以根据这个引用去调用对象的各种方法。
但是如果对这个引用进行修改,对原本的对象肯定是没有任何影响的。
举个例子:

public class Main {

    public static void main(String[] args) {
        String a="aaa";
        changTest(a);
        System.out.println(a);
    }

    static void changTest(String s){
        s="haha";
    }
}

大家觉得changTest函数可以修改a字符串的内容吗?
肯定是不行的,所以输出的a,的内容,一定是"aaa"。

因为在调用changeTest函数的时候,向函数进行值的传递,也就是把String对象的地址传入给了s。
然后在changTest函数内部,将s又指向了一个新的对象"haha"。
但是这个过程对原先的a对象毫无影响。
以上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值