Java:两个 classes 的主要方法访问相同的第三个 class
Java: Two classes with main methods accessing the same third class
我写了一个 Java 项目,其中两个 classes 有主要方法(在我的例子中,一个 class 是服务器,另一个是客户端,它们是沟通,但这并不重要)。我想知道,如果两个 classes 访问一个和同一个第三个 class,我应该期待什么行为,就像在这个例子中:
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());
}
}
先运行classB的main方法,再classC的main方法会得到什么?我希望 class C 的主要方法看不到 class B 的主要方法添加的列表元素,换句话说,它会像主要方法一样打印“1” B 哪个 运行 之前,但我不确定。这个对吗?那么这两个主要方法是否看到另一个对 class A 所做的更改?还是每个主要方法都有一个 "version of class A for itself"?
感谢您的帮助!
您好,
丹尼尔
运行 每个 class 将在不同的 JVM 实例(进程)中所以基本上它们是两个不同的程序并且彼此无关
在两个不同的 JVM 中 运行ning。将有两个不同的 class 实例对应于那里的 JVM。两个 JVM 不共享内存或 anything.So 它不会影响您的任何 class 执行 output.If 您将 运行 单个 JVM 中的两个线程然后将发生同步问题。
我写了一个 Java 项目,其中两个 classes 有主要方法(在我的例子中,一个 class 是服务器,另一个是客户端,它们是沟通,但这并不重要)。我想知道,如果两个 classes 访问一个和同一个第三个 class,我应该期待什么行为,就像在这个例子中:
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());
}
}
先运行classB的main方法,再classC的main方法会得到什么?我希望 class C 的主要方法看不到 class B 的主要方法添加的列表元素,换句话说,它会像主要方法一样打印“1” B 哪个 运行 之前,但我不确定。这个对吗?那么这两个主要方法是否看到另一个对 class A 所做的更改?还是每个主要方法都有一个 "version of class A for itself"?
感谢您的帮助!
您好, 丹尼尔
运行 每个 class 将在不同的 JVM 实例(进程)中所以基本上它们是两个不同的程序并且彼此无关
在两个不同的 JVM 中 运行ning。将有两个不同的 class 实例对应于那里的 JVM。两个 JVM 不共享内存或 anything.So 它不会影响您的任何 class 执行 output.If 您将 运行 单个 JVM 中的两个线程然后将发生同步问题。