gpt4 book ai didi

java - 有人可以向我解释在 Java 中传递 "value"而不是传递 "reference"的原因是什么吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:27:25 26 4
gpt4 key购买 nike

我是 Java 的新手(多年来一直在编写其他东西),除非我遗漏了什么(我很高兴在这里错了),否则以下是一个致命的缺陷......

String foo = new String();
thisDoesntWork(foo);
System.out.println(foo);//this prints nothing

public static void thisDoesntWork(String foo){
foo = "howdy";
}

现在,我很清楚在 Java 中所有东西都是通过“值”而不是“引用”传递的(措辞相当糟糕)的概念,但是 String 是一个对象并且有各种各样的花里胡哨,所以,人们会期望,与 int 不同,用户将能够对传递给方法的东西进行操作(而不是被重载 = 设置的值所困)。

谁能向我解释一下这个设计选择背后的原因是什么?正如我所说,我不想就在这里,也许我错过了一些明显的东西?

最佳答案

This rant解释得比我想的还要好:

In Java, primitives are passed by value. However, Objects are not passed by reference. A correct statement would be Object references are passed by value.

关于java - 有人可以向我解释在 Java 中传递 "value"而不是传递 "reference"的原因是什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/514478/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com