gpt4 book ai didi

java - 为什么新的 Integer 充当值类型 int?

转载 作者:行者123 更新时间:2023-11-30 10:13:11 26 4
gpt4 key购买 nike

public static void main(String []args){ 
Integer a = new Integer(9);
d(a);
System.out.print(a) ;
}

public static void d(int z){
z=z+2;
}

或者假设我写

public static void main(String []args){
int a = 9;
d(a);
System.out.print(a) ;
}

public static void d(int z){
z=z+2;
}

但两者的输出相同:9。谁能详细解释一下为什么?

最佳答案

因为 JAVA 是按值传递而不是按引用传递。

让我们这样理解,

您的 main 函数有一个局部变量 z,其作用域仅限于 main

并且你的 d 函数有另一个局部变量 z,其范围仅限于 d

因此,在您的 d 函数中,您基本上是在创建一个新的整数文字 11 并将其放入局部变量 z,其范围仅限于 d 函数,而不是 main 的变量 z。

关于java - 为什么新的 Integer 充当值类型 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51473164/

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