草庐IT

Singleton

全部标签

java - Guice eager/lazy 单例实例化

我在理解Guice的单例实例化的工作原理时遇到了一些麻烦。我已经阅读了可用的文档(此处-http://code.google.com/p/google-guice/wiki/Scopes),但我仍然无法弄清楚一些事情:我已将Guice与Tomcat集成,并在ServletModule中设置了一些绑定(bind):bind(MyServlet.class).asEagerSingleton();serve("myUrl").with(MyServlet.class);serve("myOtherUrl").with(MyOtherServlet.class);(其中MyOtherServ

java - 将 Singleton 对象作为枚举元素的 Scala 枚举以及迭代它们的可能性?

我已经看过ScalaquestionaboutemulatingJava'senum和caseclassesvs.Enumeration但这似乎付出了太多的努力却获得了太少的yield。基本上,我希望有一个values方法返回DayOfWeek的所有单例对象,而无需重复我自己几次。我的代码应该是这样的:objectDayOfWeekextendsMyEnum{objectMONDAYextendsDayOfWeek(1)objectTUESDAYextendsDayOfWeek(2)objectWEDNESDAYextendsDayOfWeek(3)objectTHURSDAYexte

java - java 如何确保每个 JVM 只有一个枚举实例

Java如何在内部确保每个JVM只存在一个ENUM实例?它是在应用程序启动时创建的,从那时起当多个线程访问它时,它只会返回启动时创建的对象吗?还是实现了某种类似于单例模式的双重同步,即使多个线程访问它也只会创建一个实例? 最佳答案 正如您在thisanswer中所读到的那样枚举实例是静态类字段,因此在您第一次访问类时作为类加载的一部分进行初始化。classloadingissynchronizedinternally这样可以确保枚举实例是单例(同一个类加载器中的单例,也就是说。如果您有多个加载器加载的相同枚举,您将获得多个实例)

java - ClassCastException 因为类加载器?

在使用类加载器时出现以下异常:Exceptioninthread"main"java.lang.ClassCastException:xxx.Singletoncannotbecasttoxxx.Singleton这是否意味着来自类加载器的实例不可转换为另一个类加载器的类?检查我的代码,由于类加载器,我能够在其中实例化3个单例,即使使用“”安全性也是如此。publicstaticvoidmain(String[]args)throwsException{URLbasePath=newURL("file:/myMavenPath/target/classes/");Objectinsta

java - 何时将静态嵌套类(及其中的静态成员)加载到内存中?

在这里,我尝试使用内部静态帮助器类为我的数据库连接实现一个单例类:packagecom.myapp.modellayer;publicclassDatabaseConnection{privateDatabaseConnection(){//JDBCcode...}privatestaticclassConnectionHelper{//InstantiatingtheouterclassprivatestaticfinalDatabaseConnectionINSTANCE=newDatabaseConnection();}publicstaticDatabaseConnection

java - 如何创建 JVM 全局单例?

我的灵感来自thisstackoverflowquestion如何创建一个保证在整个JVM进程中只能使用一次的Java类实例?然后,在该JVM上运行的每个应用程序都应该能够使用该单例实例。 最佳答案 事实上,您可以实现这样的单例。在评论中向您描述的问题是一个类可能被多个ClassLoader加载。s。每一个ClassLoaders然后可以定义一个名称相同的类,该类会错误地认为是唯一的。但是,您可以通过对单例实现访问器来避免这种情况,该访问器明确依赖于检查特定的ClassLoader对于一个给定名称的类,它再次包含您的单例。这样,您可

java - 单例模式面试

我最近在接受以下代码的采访时被问及与Java相关的问题,因为我对Java很陌生,几乎不会用Java编写代码,所以我真的不知道以下代码的作用。问题是使用以下代码选择描述最坏情况的选项:publicclassBolton{privatestaticBoltonINST=null;publicstaticBoltongetInstance(){if(INST==null){INST=newBolton();}returnINST;}privateBolton(){}}这是这道题的选项MorethanoneinstanceofBoltoncanbecreatedABoltonwillnever

c# - 单例和常量

我正在制作一个使用几个常量的程序。起初,每次我需要使用常量时,我​​都会将其定义为//C#privatestaticreadonlyintMyConstant=xxx;//JavaprivatestaticfinalintMyConstant=xxx;在我需要它的类里面。一段时间后,我开始意识到不止一个类需要一些常量。此时,我有3个选择:在需要它的不同类中定义它们。这导致重复。如果以后由于某种原因我需要更改其中一个,我必须checkin所有类以在所有位置替换它们。定义一个静态类/单例,所有常量都是公共(public)的。如果我在ClassA、ClassB和ClassC中需要一个常量X,

java - 启动 ejb bean 不工作

我正在尝试使用启动ejb在启动时做一些事情。但是我的bean从未被调用过。这是我的bean:importjavax.annotation.PostConstruct;importjavax.ejb.Startup;importjavax.inject.Singleton;@Singleton@StartuppublicclassStartupBean{@PostConstructpublicvoiddoSomething(){System.out.println("why??");}}我正在使用jboss7.1.1。我做错了什么?你可以在bitbucket找到我的源代码:https:/

java单例实例化

我找到了三种实例化Singleton的方法,但我怀疑其中哪一种是最好的。我在多线程环境中使用它们并且更喜欢惰性实例化。示例1:privatestaticfinalClassNameINSTANCE=newClassName();publicstaticClassNamegetInstance(){returnINSTANCE;}示例2:privatestaticclassSingletonHolder{publicstaticfinalClassNameINSTANCE=newClassName();}publicstaticClassNamegetInstance(){returnS