gpt4 book ai didi

java - 提前引用变量?

转载 作者:行者123 更新时间:2023-12-02 12:49:53 26 4
gpt4 key购买 nike

我试图理解对象与原始变量在方法中用作参数时的区别。

有一些使用引用变量的示例:

public class Test1 {
public static void main(String[] args) {
int[] value = {1};
modify(value);
System.out.println(value[0]);
}

public static void modify(int[] v) {
v[0] = 5;
}
}
<小时/>

结果:5

public class Test2 {

public static void main(String agrs[]) {
Integer j = new Integer(1);
refer(j);
System.out.println(j.intValue());
}

public static void refer(Integer i) {
i = new Integer(2);
System.out.println(i.intValue());
}
}

结果:2 | 1

那么这里有什么不同呢?

最佳答案

在java中数组是原始类型,而Integer是对象类型。

对于基元,它按值传递实际值(例如 3)

对于对象,您可以通过值传递对对象的引用。

在第一个示例中,您正在更改数组中的值。

而在其他示例中,您正在将 i 的引用更改为对象值为 2 的其他内存位置。当返回主函数时,因为您没有返回值。其引用范围仅限于“refer”方法。

关于java - 提前引用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17896489/

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