我想知道在同一台计算机上使用不同的输入参数多次部署包含Singleton Class的代码时,将创建多少个单例实例。 另外我想知道JVM将如何处理这种情况。在这种情况下会创建多个JVM实例吗?
答案 0 :(得分:0)
多个JVM之间没有链接 - 它们之间具有完全独立的状态(除非您添加一些机制以使它们显式通信,或者访问共享状态,例如来自相同的数据库或文件)。
因此,一个JVM无法知道另一个JVM是否具有单例实例(或者甚至使用单例类)。这意味着每个JVM将有一个单例实例。
答案 1 :(得分:0)
每个唯一的类加载器都有一个Singleton类的实例,即使它们位于同一个JVM中。在您的情况下,由于同一JVM上有多个部署,因此每个部署都将使用其版本的类加载器来创建单例。因此,您将在JVM上拥有多个单例实例。
答案 2 :(得分:-2)
Singleton对象意味着只允许一个实例。所以不存在创建多个实例的问题。 如果您创建此单例类的新对象,则始终返回创建的第一个对象。