zoukankan      html  css  js  c++  java
  • 04_javaSE面试题:方法的参数传递机制

    题目

    import java.util.Arrays;
    
    /**
     * @author kevin
     * @date 2019/7/10 9:46
     */
    public class Exam4 {
        public static void main(String[] args) {
            int i= 1;
            String str = "hello";
            int[] arr = {1,2,3,4,5};
            MyData my = new MyData();
            change(i,str,arr,my);
            System.out.println("i=" +i );
            System.out.println("str=" + str);
            System.out.println("arr="+ Arrays.toString(arr));
            System.out.println("my.a="+my.a);
        }
        public static void change(int i,String str,int[] arr,MyData my){
            i +=1;
            str += "world";
            arr[0] += 1;
            my.a +=1;
        }
    }
    class MyData{
        int a = 10;
    }
    
    

    运行结果

    i=1
    str=hello
    num=2
    arr=[2, 2, 3, 4, 5]
    my.a=11
    

    分析

    首先,不要纠结于 Pass By Value 和 Pass By Reference 的字面上的意义,否则很容易陷入所谓的“一切传引用其实本质上是传值”这种并不能解决问题无意义论战中。

    • 对象类型永远传引用;
    • 基本类型传值。

    下面画了一张图更利于解释

    玩的开心!

  • 相关阅读:
    【正则】限定符-总
    【正则】字符类-总
    【正则】元字符-总
    【正则】基本知识点
    Linux 核心系统命令目录
    股票模型
    windows 批量删除用户
    cka 英文考试题
    cka 英文考试题
    李永乐说股票
  • 原文地址:https://www.cnblogs.com/zhenghengbin/p/11163721.html
Copyright © 2011-2022 走看看