ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

值传递与引用传递

2022-09-15 18:03:34  阅读:193  来源: 互联网

标签:number 传递 参数 引用 Test01 public


值传递与引用传递

值传递

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

值传递

值传递是对于是对基本数据而言,例如下面例子,number没有改变。

public class Test01 {
    public static void main(String[] args) {
        int number = 10;
        new Test01().change(number);
        System.out.println(number);
    }

    public void change(int a){
        a+=1;
    }
}

引用传递

引用传递:是指在调用函数时,将实际参数的地址传递到函数中,那么在函数中对参数进行修改,将会影响到实际参数

引用数据类型分为两个部分,引用变量和对象,这两个部分放在不同的地方,引用变量在栈中,而对象是放在堆内存中的,引用变量指向对象。
如下图所示,当传递参数之前会将参数进行复制,但是复制的是引用变量,复制后的引用变量还是指向内存中的同一对象,所以引用传递中,函数修改了参数会影响实际参数

引用变量

引用传递是对于引用数据类型而言,例如对于User类姓名的修改,会改变对象的name。

public class Test01 {
    public static void main(String[] args) {
        User user = new User("小明", 12);
        new Test01().change(user);
        System.out.println(user);
    }

    public void change(User a){
        a.setName("小张");
    }
}

标签:number,传递,参数,引用,Test01,public
来源: https://www.cnblogs.com/xiaofenga/p/16697467.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有