【问题标题】:java singleton with windows 7带有 Windows 7 的 Java 单例
【发布时间】:2012-02-02 20:24:22
【问题描述】:

我在 Windows 7 32 位上使用 1.5.0_22 版 Java,并且我在我的应用程序中确定对单例对象的引用不会将一个进程的内存保留给另一个进程,即使在同一个 JVM 中运行也是如此。

有没有人遇到过这个问题或知道如何解决?

谢谢

【问题讨论】:

  • "不会将一个进程的内存留给另一个" 特定于 Windows 7,请考虑将其从标题/标签中删除...并考虑 Java 6(或什至 7)。
  • “不将一个进程的内存留给另一个进程”是什么意思?
  • 我不明白 - 单例在程序的不同运行之间没有保持相同的内存引用?为什么会呢?当您关闭应用程序时,所有内存(及其指针/内存引用)都会被释放。
  • @normalocity ...但随后是“晚上在同一个 JVM 中运行”。我很困惑:)
  • 示例代码可能是唯一可以解决这个问题的。

标签: java windows-7 singleton


【解决方案1】:

每个 JVM 总是有一个 Singleton。如果您在应用程序中运行更多线程,它们将共享同一个 Singleton 实例。 如果没有,请向我们展示您的代码以及您如何使用单例。

如果您正在运行 Java Swing 应用程序(或类似的应用程序),我怀疑您的 Singleton 实例不止一个。

如果您在 servlet 环境中运行它...是的,您可以拥有更多实例。如果是这种情况,请摆脱单例模式(您应该找到其他解决方案)。

还不确定?请阅读:http://java.sun.com/developer/technicalArticles/Programming/singletons/

【讨论】:

  • 你的意思是每个类加载器一个单例
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-11
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多