当前位置: 首页 > 面试题库 >

通过值/引用传递,什么?

龙华翰
2023-03-14
问题内容

该程序给出6作为输出,但是当我取消注释第9行时,输出为5。为什么?我认为ba不应更改,主要应保持5。

1  class C1{
2      int a=5;

3      public static void main(String args[]){
4          C1 b=new C1();
5          m1(b);
6          System.out.println(b.a);
7      }

8      static void m1(C1 c){
9          //c=new C1();
10         c.a=6;
11    }
12 }

问题答案:

在Java中传递对象时,它们将作为bin main方法中引用的参考含义对象和method
c中的参数传递m1,它们都指向同一对象,因此,当您将值更改为6时,它将反映在main方法中。

现在,当您尝试执行c = new C1();此操作时,您c将指向另一个对象,但b仍指向您在main方法中创建的对象,因此更新的值6在main方法中不可见,并且得到5。



 类似资料:
  • 问题内容: 我真的是Swift的新手,我刚刚读到类是通过引用传递的,并且复制了数组/字符串等。 通过引用进行传递是否与在Objective-C或Java中通过“ a”引用进行传递的方式相同,还是通过引用进行正确传递? 问题答案: Swift中的事物类型 规则是: 类实例是 引用类型 (即, 您 对类实例的引用实际上是一个 指针 ) 函数是参考类型 其他一切都是 价值类型 ; “其他所有内容”仅表示

  • 问题内容: 这两个代码有什么区别: 代码A: 哪里 VS. 代码B: 这两个代码之间有什么区别吗? 问题答案: Java始终按值传递参数,而不按引用传递参数。 让我通过一个例子解释一下: 我将逐步解释这一点: 声明一个名为ftype 的引用,Foo并将其分配给Foo具有属性的type的新对象”f”。 从方法方面,声明Foo具有名称的类型引用,a并将其初始分配给null。 调用方法时changeRe

  • 问题内容: Go中的地图是否通过值或引用传递? 始终可以将函数定义为以下形式,但这是一个过大的杀伤力吗? 相同的返回值问题。我应该返回指向地图的指针,还是将地图作为值返回? 这样做的目的当然是避免不必要的数据复制。 问题答案: 在此线程中,您将找到答案: Golang:使用地图参考来访问地图 您不需要在地图上使用指针。 映射类型是引用类型,例如指针或切片[1] 如果需要更改会话,可以使用一个指针:

  • 本文向大家介绍JavaScript 通过引用或值传递参数,包括了JavaScript 通过引用或值传递参数的使用技巧和注意事项,需要的朋友参考一下 示例 在JavaScript中,所有参数均按值传递。当函数将新值分配给参数变量时,该更改将对调用者不可见: 但是,对此类参数的(嵌套)属性所做的更改对调用者将是可见的: 这可以看作是通过引用进行的调用:尽管函数无法通过为其分配新值来更改调用者的对象,但

  • 有一组好的规则来确定是按值传递还是常量引用 如果函数打算将参数更改为副作用,则通过non-const引用。 如果函数不修改它的参数,并且参数是基元类型,则按值取它。 否则通过const引用获取它,除非在以下情况下:如果函数需要复制const引用,则按值获取它。 对于以下构造函数,如何确定它?

  • 问题内容: 我想将我的Swift传递 给引用(这样,当我向添加聊天时,仍指向)。即,当更改长度时,我不希望Swift将两个数组分开。 问题答案: Swift中的结构按值传递,但是您可以使用修饰符来修改数组(请参见下面的答案)。类通过引用传递。和在Swift中实现为结构。