gpt4 book ai didi

java - 考虑以下用 Java 编写的程序。为什么这个输出**2 2**。我认为这应该是输出 **1 1**

转载 作者:行者123 更新时间:2023-12-02 09:31:05 25 4
gpt4 key购买 nike

考虑以下用 Java 编写的程序。为什么输出是2 2?我认为它应该输出 1 1

class Access{
static int x;
void increment(){
x++;
}
}

public class Main{
public static void main(String args[])
{
Access obj1 = new Access();
Access obj2 = new Access();
obj1.x = 0;
obj1.increment();
obj2.increment();
System.out.println(obj1.x + " " + obj2.x);
}
}

最佳答案

静态变量在类的所有实例之间共享,当我们需要进行内存管理时它们很有用。在某些情况下,我们希望所有实例(例如全局变量)有一个共同的值,那么最好将它们声明为静态,因为这可以节省内存(因为只为静态变量创建单个副本)。

因此,当调用 obj1.increment() 时,它会将 x 的值更新 1。而当调用 obj2.increment() 时,它会将相同的静态引用更新 +1 并使其变为 2。最后 ypu 得到两者值为 2。下面的代码片段将打印值为 1 和 2。

obj1.increment();
System.out.println(obj1.x);
obj2.increment();
System.out.println(obj2.x);

关于java - 考虑以下用 Java 编写的程序。为什么这个输出**2 2**。我认为这应该是输出 **1 1**,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57967499/

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