简述Java中的值传递,面试小技巧教你如何快速记住!

1·结论:Java是值传递

2·证明+分析:

        1>·首先我们来看一段代码:

 public static void main(String[] args) {
        int a = 50;
        String b = "hello";
        changeNum(a,b);
        System.out.println("["+a+"]"+","+"["+b+"]");
    }

    public static void changeNum(int a,String b){
         a = 100;
         b = "test";
    }

        最后打印的结果会是什么?

        2>·并不意外,如我们一开始的结论是一样的;在分析之前我们需要回顾几个名词儿,形参和实参,值传递。

形参:是在自定义函数中的参数,其生命周期也只在方法内,方法执行过后便会被销毁;

实参:可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参,因此应预先用赋值,输入等办法使参数获得确定值。

值传递:指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。

        3>·分析: 可以看出通过方法传递后,我们原先设定的int 类型与 String 类型的原值并没有受到前面changeNum 方法执行后的影响,还是输出了原先的预设值,这种形为通常被说成值传递。如果原值经过方法后被改变了,这种形为通常被描述为引用传递

3·小总结:

        Java 中的基本类型,属于值传递。
        Java 中的引用类型,属于引用传递。
        Java 中的 String 及包装类,属于特殊群体,作为形参时,由于每次赋值都相当于重新创建了对象,因此看起来像值传递,但是其特性已经破坏了,值传递、引用传递的定义。因此他们属于引用传递的定义,却表现为值传递。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏然HHash#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值