zoukankan      html  css  js  c++  java
  • 在Java中关于值传递和引用传递小记

    在Java中关于值传递和引用传递小记

      在Java中的数据分为两种:基本数据类型引用类型。其中引用类型包含类引用(记为类)、接口引用(记为接口)、数组引用类型(记为数组)。

      另外对于参数类型在方法中为:在方法的定义时写的参数为形式参数、而在参数的调用中实际传入的参数为实际参数。

      一般情况下Java中的数据在进行参数传递的时候,基本数据类型传递是做值传递,而引用数据类型传递是在做引用传递,即将地址进行传递。

      (1)基本数据类型的传递

      测试String:

    public class Test{
            public static void main(String[] args) {
            String xString = new String("博美");
            change(xString);
            System.out.println(xString);
        }
    
        static void change(String xString) {
            xString = "哈士奇";
        }   
    }     

      

       测试int:

    public class test{
            public static void main(String[] args) {
            // 测试引用传递
            int x = new Integer(12);
            change(x);
            System.out.println(x);
        }
    
        static void change(int x) {
            x = 14;
        }
    }

      

      (2)测试引用类型,以数组类型为例

    public class test{
            public static void main(String[] args) {
            int[] testArray = { 1, 3, 5, 7, 99 };
            change(testArray);
            System.out.println(testArray[0]);
        }
    
        public static void change(int[] array) {
            array[0] = 0;
        }
    }

      

       从以上的测试中可以看出,基本数据类型int,String在进行参数传递的时候都是进行的值传递,即直接将值copy一份传入,函数改变的并不是值的本身,或者说并没有对原来的值产生影响。而引用传递的话就可以在被调用方法中对实参进行修改了。

  • 相关阅读:
    changing a pointer rather than erasing memory cells
    验证码识别 edge enhancement 轮廓增强 region finding 区域查找
    Manipulating Data Structures
    passing parameters by value is inefficient when the parameters represent large blocks of data
    Aliasing 走样
    Artificial Intelligence Research Methodologies 人工智能研究方法
    Thread safety
    include pointers as a primitive data type
    flat file
    functional cohesion
  • 原文地址:https://www.cnblogs.com/dashenaichicha/p/12143200.html
Copyright © 2011-2022 走看看