gpt4 book ai didi

java - Java参数引用和原始引用(不是对象)如何相同?

转载 作者:行者123 更新时间:2023-12-01 20:22:21 25 4
gpt4 key购买 nike

所以我们知道Java使用按值传递,即它将引用的副本传递给方法。我想知道为什么当我测试参数引用(在我的示例中为 param )与原始引用(在我的示例中为 string )时说它们是相同的?

下面的代码不应该返回 false ,即引用不相同,因为复制引用(即新引用)是按值传递的?

public class Interesting {

private String string;

public Interesting(final String interestig) {
super();
string = interestig; // original reference is tested against copy reference and it says they are the same
}

public boolean isItTheSame(final String param) {
return param == string;
}

public static void main(final String args[]) {
Interesting obj = new Interesting("String");
System.out.println(obj.isItTheSame(obj.string)); //copy of reference is created here
}
}

最佳答案

引用变量是一个引用。它包含标识对象位置的特定位模式。这在计算机科学中被称为“指针”。 Per the JLS ,“引用值(通常只是引用)是指向这些对象的指针”。指针值与基元一样,仅通过其位模式传递给方法。相同的模式意味着它们指向同一个对象。这就是 == 检查两个指针​​是否指向同一个对象的内容。这就是你得到这个结果的原因。

关于java - Java参数引用和原始引用(不是对象)如何相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44477957/

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