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;
          }
    }
    
  • 相关阅读:
    Redhat VNCServer
    Petshop4 的相关文章、下载地址和相关问题
    .Net 2.0 中用 ICallbackEventHandler实现 Ajax无刷新操作
    Silverlight 结合WCF Duplex Service聊天程序出炉
    vsftp的虚拟用户管理
    MySql 内存表使用
    linux 上远程控制
    理解WCF Session笔记
    转载-磁盘管理
    rhel 5 3G以上内存解决方案
  • 原文地址:https://www.cnblogs.com/zk2020/p/13991664.html
Copyright © 2011-2022 走看看