zoukankan      html  css  js  c++  java
  • Java数值传递的时候,到底是引用传递还是值传递

    java中既有引用传递也有值传递    ----》》方法形式参数上 
    1.值传递,基本数据类型
    值传递是:传递的是存储单元中的内容,而不是存储单元的引用。
    
    2.引用传递:引用类型,数组,集合。
    引用传递的是内存地址。
    
    对于基本数据类型来说 “=”赋值操作是直接改变内存地址(存储单元)上的值。
    对于引用类型来说 “=” 赋值操作是改变引用变量所指向的内存地址(上文中存储单元)。
    
    总结:
    函数参数传递其实是一个赋值的过程,基本类型传递的是数值,引用类型传递的引用对象的内存地址。
    另外一点要特别注意,函数的参数其实是函数内部的局部变量。不要跟外部变量混淆。
    

    值传递代码实现

    public class AA{
          public static void main (String[] args){
    	      int a = 10;
    	      int b = 20;
    	      change(a,b);
    	      System.out.println(a);//a=10
    	      System.out.println(b);//b=20
          }
          public static void change(int a,int b){
    	      a = a + b ;//a=30
                  b = b + a ;//b=50
          }
    }
    

    引用传递代码实现

    public class BB{
          public static void main (String[] args){
              int[] arr={10,20};
              changeArray(arr);
              System.out.println(arr[0]);//30
              System.out.println(arr[1]);//50
          }
        public static void change(int[] arr){//传递的是地址
    	  arr[0] = 30;
              arr[1] = 50;
          }
    }
    
  • 相关阅读:
    kubernetes----资源控制器5
    kubernetes----二进制安装3
    kubernetes----自动化安装2
    kubernetes----基础1
    PC微信低版本限制登录怎么办?
    mysql排名次
    mysql中GROUP BY中报错
    scrapy框架操作
    python QQ与微信自动发消息
    python中调用js的编码问题
  • 原文地址:https://www.cnblogs.com/zk2020/p/13991664.html
Copyright © 2011-2022 走看看