关于静态方法有些疑问,请高手们指点一下:
比如:
有一个工具类Util.java,里面有一个方法和成员变量,都是static 类型。
public static HashMap<String, String> orgMap = new HashMap<String, String>();
protected void buildMap(String MapDataPath)
{
orgMap.clear();
.......
}
另外有三个java 文件要使用这个工具类。
我的疑问是,如果我同时运行这三个java程序,使用的是同一个 orgMap 吗? 请高手们详细指点一下,非常感谢~~
如果在同一个jvm里运行,就是同一个实例。如果三个程序分别在不同的jvm里运行,则在每个jvm里有单独的实例。
你所说的 三个程序我不太明白什么意思 反正每个线程过来访问 这个orgMap都是同一个
当程序运行起来,orgMap 就创建好了,所有线程调用的是同一个对象
这个会出现线程安全的问题吧 8)
java中的静态方法是在程序运行起来之后就创建好了,也就是说静态方法里面的变量也已经new好了,所以无论多少线程访问都是用的同一个orgMap
静态变量是属于class的,所以是同一个