'); } '); } 参数传递 | Journey to paradise

参数传递


参数传递内容分析

示例1

要点

java语言当中方法调用的时候涉及到参数传递的问题,参数传递实际上传递的是变量中保存的具体值。

    int i=10;
    add(i); //等同于: add (10);

示例代码

public class Test01 {
    public static void main (string [] args) {
    int i =10;
    add(i); //add方法调用的时候,给add方法传递了一个变量i,到底传的是什么?
    System.out.println ( "main -->"+i);//10
    }

public static void add (int i){
    i++;
    System. out.println( "add -->"+i);
    }
}

内存图分析


示例二

要点

方法调用的时候,涉及到参数传递的问题,传递的时候,java只遵循一种语法机制,就是将变量中保存的"值"传递过去了,
只不过有的时候这个值是一个字面值10,有的时候这个值是另一个java对象的内存地址0x1234

示例代码

public class Test02{
    public static void main(String[] args) {
        User u=new User(20);

        //User u=0x1234;
        //传递u给add方法的时候,实际上传递的是u变量中保存的值,只不过这个值是一个java对象的内存地址
        add(u);//等同于:add (0x1234);
        system.out.println ( "main-->" + u.age) ; //21
    }
    public static void add (User u){
        u.age++;
        system.out.println ( "add-->" +u.age) ;//21
    }
}
class User{
    //实例变量
    int age;
    //构造方法
    public User (int i){
        age = i;
    }
}

内存图分析


文章作者: 涂爽
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 涂爽 !
评论
 上一篇
参数传递 参数传递
什么意思? 将规定范围内的数从大到小依次排列,从2开始依次筛去该数的倍数,因为素数的倍数一定不是素数,筛完后剩下的数即为素数。 eg:求1~100范围的素数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数…….,直到最后一个数,剩下的就是素
2020-09-05
下一篇 
对象的创建与使用-内存分析 对象的创建与使用-内存分析
对象的创建与使用-内存分析 方法执行内存分析 注:栈原理图 部分源码示例 //方法调用的时候,在参数传递的时候,实际上传递的是变量中保存的那个"值&q
2020-07-22
  目录