关于形参和实参-java基础

向右看齐 2022-05-23 05:37 229阅读 0赞

引用类型数据和基本类型数据作为参数传递是有区别的,

  1. class Demo1{
  2. public static void main(String[] args){
  3. int a = 4;
  4. show(a);
  5. System.out.println("a="+a);
  6. }
  7. public static void show(int a){
  8. a = 5;
  9. }
  10. }

输出结果仍为4

201806031017351

基本数据类型作为参数传递时,就是将基本类型变量实参a空间中的值传递给调用的方法show(),当在show()方法中a视为形参,接受到值后,再在show()方法中对a变量进行操作,这时只会影响到show中的形参a。当show方法执行完成,弹栈后,程序又回到main方法执行,main方法中的实参a值还是原来的值。

  1. class Demo2 {
  2. int x ;
  3. public static void main(String[] args) {
  4. Demo d = new Demo();
  5. d.a = 5;
  6. show(d);
  7. System.out.println("a="+d.a);
  8. }
  9. public static void show(Demo d){
  10. d.a = 6;
  11. }
  12. }

20180603102651487

当引用数据类型变量作为参数传递时,这时其实是将引用变量空间中的内存地址(引用)传递给了show方法的d引用变量。这时会有两个引用同时指向堆中的同一个对象。当执行show方法中的d.a=6时,会根据d所持有的引用找到堆中的对象,并将其a属性的值改为6.show方法弹栈。

由于是两个引用指向同一个对象,不管是哪一个引用改变了引用的所指向的对象的中的值,其他引用再次使用都是改变后的值。

所以,基本数据类型作为参数传递时,形参的改变不影响实参的改变,而引用数据类型作为参数传递时,形参改变,实参也相应的做出改变

发表评论

表情:
评论列表 (有 0 条评论,229人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java方法参数的

    在之前的文章中,小千给大家讲解了方法的定义、调用和返回值,但方法的内容还有很多,比如方法的参数是怎么回事?接下来会在这篇文章中,继续给大家讲解方法参数相关的知识,这就是我们今天

    相关 java调用释疑

    总结 1.方法形参 调用方法时,将实参变量值复制一份,传递给形参变量,实参引用类型的时候,是将引用类型的地址值传递给形参变量,指向堆内存中的地址,通过该地址可以修改

    相关 java参与

    形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。 实参出现在主调函数中,进入被调函数后,实参变量也不能使用。 形参和实参的功

    相关 Java变量,

    成员变量 成员变量定义在类中,在整个类中都可以被访问。 成员变量分为类成员变量和实例成员变量,实例变量存在于对象所在的堆内存中,类成员变量也叫静态变量,存在于静态域内

    相关 方法中

    java方法的参数传递机制:值传递 所谓值传递,就是讲实际参数值的副本传入方法内,而参数本身不会受到任何影响。 \[java\]  [view plain][]  

    相关

    形参(argument) 全称:"形式参数" 目的:是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。 作用:实现主调函数与被调函数之间的联系