Java:两个类,主要方法访问同一个第三类

时间:2017-05-20 11:37:24

标签: java main

我编写了一个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类的主要方法,我会得到什么?我希望C类的主要方法不会看到由B类主方法添加的list-element,换句话说,它会像之前运行的B的主要方法一样打印“1”,但是我我不确定。它是否正确?那么两种主要方法是否看到另一种方法对A类的改变?或者每个主要方法是否都有“自己的A类版本”?

感谢您的帮助!

问候, 丹尼尔

2 个答案:

答案 0 :(得分:3)

它在两个不同的JVM中运行。将有两个不同的类实例与JVM相对应。两个JVM不共享内存或任何东西。因此它不会影响任何类执行输出。如果您将在单个JVM中运行两个线程,则会发生同步问题。

答案 1 :(得分:1)

运行每个类将在不同的JVM实例(进程)中,所以基本上它们是两个不同的程序并且彼此无关