我编写了一个 Java 项目,其中两个类具有主要方法(在我的情况下,一个类是服务器,另一个是客户端,它们正在通信,但这并不重要)。我想知道,如果两个类都访问一个和相同的第三个类,我应该期待什么行为,如本例所示:
class A{
public static ArrayList<String> list = new ArrayList<String>();;
}
class B{
public static void main(String[] args){
A.list.add(String.valueOf("Hello"));
System.out.println(list.size());
}
}
class C{
public static void main(String[] args){
A.list.add(String.valueOf("World"));
System.out.println(list.size());
}
}
如果我先运行 B 类的 main 方法,然后运行 C 类的 main 方法,我会得到什么?我希望 C 类的 main 方法看不到 B 类的 main 方法添加的列表元素,换句话说,它会像之前运行的 B 的 main 方法一样打印“1”,但是我'我不确定。这样对吗?那么这两个主要方法是否看到另一个对类 A 所做的更改?或者每个主要方法都以某种方式有一个“类 A 的版本”?
谢谢你的帮助!
你好,丹尼尔
它运行在两个不同的 JVM 中。将有两个不同的类实例,分别对应于那里的 JVM。两个 JVM 不共享内存或任何东西。因此它不会影响您的任何类执行输出。如果您将在单个 JVM 中运行两个线程,则会出现同步问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句