码迷,mamicode.com
首页 > 编程语言 > 详细

04_javaSE面试题:方法的参数传递机制

时间:2019-07-10 14:53:22      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:题目   开心   val   论战   ref   info   java   change   int   

题目

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 的字面上的意义,否则很容易陷入所谓的“一切传引用其实本质上是传值”这种并不能解决问题无意义论战中。

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

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

玩的开心!

04_javaSE面试题:方法的参数传递机制

标签:题目   开心   val   论战   ref   info   java   change   int   

原文地址:https://www.cnblogs.com/zhenghengbin/p/11163721.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!