相关疑难解决方法(0)

Java是"通过引用传递"还是"传递价值"?

我一直认为Java是传递引用的.

但是,我看过一些博客文章(例如,这个博客)声称它不是.

我不认为我理解他们所做的区别.

解释是什么?

java methods parameter-passing pass-by-reference pass-by-value

6270
推荐指数
80
解决办法
189万
查看次数

通过引用或通过值传递?

在学习新的编程语言时,您可能遇到的一个可能的障碍是,默认情况下,该语言是按值传递还是按引用传递.

所以这是我对你们所有人的问题,用你最喜欢的语言,它是如何实际完成的?什么是可能的陷阱

当然,你最喜欢的语言可以是你曾经玩过的任何东西:流行的,模糊的,深奥的,新的,旧的 ......

language-agnostic oop parameters pass-by-reference pass-by-value

51
推荐指数
7
解决办法
2万
查看次数

Java真的按值传递对象吗?

可能重复: Java是否通过引用传递?

public class myClass{
    public static void main(String[] args){
        myObject obj = new myObject("myName");
        changeName(obj);
        System.out.print(obj.getName()); // This prints "anotherName"
    }
    public static void changeName(myObject obj){
        obj.setName("anotherName");
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道Java通过值传递,但为什么它obj在前面的示例中通过引用传递并更改它?

java terminology parameter-passing pass-by-reference pass-by-value

27
推荐指数
2
解决办法
2万
查看次数

我们可以在java中使用pass by reference吗?如果否如何java.util.Arrays.sort工作?

我曾经认为Java支持传递值和passby参考,但我遇到了许多讨论,如

  1. Java总是按值传递,没有例外.
  2. Java始终是按值传递的
  3. Java总是按值而不是通过引用传递参数.
  4. Java按值传递引用.因此,您无法更改传入的引用.

如果java只支持按值传递
怎么做java.util.Array.sort()Collections.sort(unsortList)有效?

int iArr[] = {2, 1, 9, 6, 4};// sorting array

Arrays.sort(iArr);    

System.out.println("The sorted int array is:");
for (int number : iArr) {
    System.out.println("Number = " + number);
}
Run Code Online (Sandbox Code Playgroud)

更新: 传递引用的内容(按值)实际上是什么意思?它与通过C或C++中的数组的引用行为有什么不同?

更新: 如果我错了,请纠正我.在C中,我们在通过引用传递时传递变量的地址.在Java中,我们将引用传递给对象(或值).只要方法中的变量指向Object,对象的值就会随着变量而变化.调用的方法. Java Pass通过引用传递 没有Object或reference的副本!我只能看到2个不同的变量指向同一个Object,而不是通过引用传递.在C++中的类似传递引用两个不同的变量指向同一个地址.

java pass-by-reference pass-by-value

4
推荐指数
1
解决办法
623
查看次数