gpt4 book ai didi

java - 关于Java中的局部变量

转载 作者:行者123 更新时间:2023-11-29 06:42:37 25 4
gpt4 key购买 nike

我有一个关于 Java 中局部变量的快速问题:

如果在声明一个局部变量时,我将它指向一个实例变量,那么该局部变量是充当对该实例变量的引用,还是充当一个临时的深拷贝?

换句话说,如果我在新初始化的局部变量上调用修饰符方法,局部变量是否会作为引用并在实例变量上调用修饰符,它会修改局部变量指向的复制版本,还是不能对局部变量调用修饰符方法?

例如。

public static > boolean isSorted(Stack s) {

...(一堆代码)

else if(s instanceof DynamicArrayStack){...(一堆代码)

DynamicArrayStack tempStack = (DynamicArrayStack) s;E elem = (E) tempStack.pop();

...(一堆代码)}...(一堆代码)

在“tempStack”上调用 pop() 会导致在参数“s”指向的 Stack 实例上也调用 pop() 吗?还是只会影响我的“tempStack”的内容?

最佳答案

If, upon declaring a local variable, I point it at an instance variable, does the local variable then act as a reference to that instance variable, or does act like a temporary deep copy?

第一个选项。 Java 不会隐式地制作对象的深拷贝。您拥有的是对实例对象 的临时引用,实例变量也引用了它。

关于java - 关于Java中的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9743053/

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