百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>JS教程> Java的call by value和call by reference的具体介绍
分享文章到:

Java的call by value和call by reference的具体介绍

发布时间:09/01 来源:未知 浏览: 关键词:
本篇文章给大家带来的内容是关于Java的call by value和call by reference的具体介绍,有必然的参照 价值,有需要的伴侣可以参照 一下,但愿对你有所帮忙。

问题如下:

757138294-5c8bdc7461f4f_articlex.png

Java传参的两种方式

  1. call by value(值传递):传递的是值(针对根本数据类型),如传递一个整型数值。实际上,按值传递在办法调取办法中,参数只是实际参数的一份拷贝。
  2. call by reference(援用传递):传递的是对象的援用(针对对象),即传递的是对象的地址。实际上,援用按传递时候会发生一份新的援用拷贝,新旧两份援用同时指向统一个地址。

代码示例

public class TestJavaCallBy {

    // 测试值传递
    public static void testCallByValue(int value) {
        value *= 10;
    }

    // 测试援用传递
    public static void testCallByReference(StringBuilder sb) {
        sb.append(" - " + ZonedDateTime.now());
    }

    public static void main(String[] args) {

        // 测试值变量
        int param = 1;
        // 测试援用对象
        StringBuilder sb = new StringBuilder("666");

        // 测试
        System.out.println(param);
        testCallByValue(param);
        System.out.println(param);

        System.out.println(sb.toString());
        testCallByReference(sb);
        System.out.println(sb.toString());
    }
}

操纵台输出结果
1
// 结果仍为1,由于参数传递的是实参的一份拷贝,对实参不造成影响
1 

666
// 传递的是援用的拷贝,新旧两个援用指向统一个对象(地址),因此append操纵是作用在该对象上
666 - 2019-03-16T01:25:57.933038500+08:00[Asia/Shanghai]

那么就能得出一下结论:

  1. call by value不会改动实参的值
  2. call by reference不克不及改动实参的参照 地址
  3. call by reference能改动实参的内容

那么这道题的答案就是这样。

以上就是Java的call by value和call by reference的具体介绍的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有151人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板