问题内容: 我将一堆可运行的对象放入ExecutorService中: 我希望我的程序/过程在所有工作人员完成后立即停止。但是根据我的日志,这种情况还需要20到30秒。工人没有分配任何资源,实际上,他们目前什么都不做。 不要误会我的意思,这对我来说不是一个关键问题,我只是想了解正在发生的事情,而且我想知道这是否是正常行为。 问题答案: 使用它的。的javadocs说“每个新线程都被创建 为非守护
问题内容: 我已经看到许多应用程序将乐器类作为参数并在加载时作为参数,这些应用程序也将a 放到了命令行中。 Java文档说关闭了类验证。 但是,为什么有人要关闭验证,即使他们正在学习类呢? 问题答案: 我会说启动时间。加载类时,验证类是否正确需要花费一些时间。由于类可能以惰性方式加载(不是在应用程序启动时加载,而是在首次使用时加载),因此这可能会导致意外的和不希望的运行时延迟。 实际上,通常不需要
问题内容: 我正在尝试为一个项目实施单元测试,它使用了一个遗留有静态方法的旧式“实用程序”项目,并且许多类是最终的,或者它们的方法是最终的。我根本无法更新旧项目。 JMock和EasyMock都限制了最终方法,我看不到测试静态调用的好方法。有哪些技术可以测试这些? 问题答案: 如果您能够重构代码,则可以将对final / static方法的调用包装在简单的实例方法中,例如: 这使您可以在单元测试中
问题内容: 我在Windows 7中使用命令提示符制作了一个可执行jar 创建了.jar文件。但是当我尝试打开它时,我会看到一个弹出窗口,其中显示 但是,当我使用 在命令提示符下,它可以正常工作。这是怎么回事?我希望能够双击它。 问题答案: 哈,我发现了问题所在。我使用jdk1.7编写了程序,但安装了jre6。我去升级到jre7,现在可以正常工作了:) 的 行在命令提示符下工作,因为我的Java路
问题内容: 我在基于JBoss的Web应用程序中使用JAXBContext.newInstance操作。据我了解,此操作非常繁重。我只需要Marshaller类的两个唯一实例。 我最初的建议是要有一个静态初始值设定项块,该类将在加载类时仅初始化一次这两个实例: 如果这是一个合理的解决方案,那么我想我会回答自己的问题,但是我想知道这是否是正确的方法? 问题答案: JAXB实现(Metro,Eclip
问题内容: 我需要使ArrayLists线程的ArrayList安全。我也不能让客户对集合进行更改。不可修改的包装器会使其线程安全吗,或者我需要在集合上使用两个包装器? 问题答案: 这取决于。包装器只会阻止对其包装的集合进行更改,而不是对集合中的对象进行更改。如果您有一个ArrayLists的ArrayList,则全局列表及其每个元素列表都需要单独包装,并且您可能还需要为这些列表的内容做些事情。最
问题内容: 我该如何与正在测试的班级中的Mockito其他班级进行模拟? 例如: MyClass.java 任何东西PerformerClass.java 并测试: 我是否可以欺骗以排除不必要的逻辑?我可以重写方法来简单地返回还是? 为什么指定Mockito,因为在Robolectric进行Android测试时需要它。 问题答案: 您可以重构,以便它使用依赖注入。不用让它创建实例,您可以将类的实例
问题内容: 我对ThreadLocal的有限理解是它存在资源泄漏问题。我认为可以通过在ThreadLocal中适当地使用WeakReferences来解决此问题(尽管我可能会误解了这一点。)我只想提供一个模式或示例,以将ThreadLocal与WeakReference一起正确使用(如果存在)。例如,在此代码段中,将引入WeakReference吗? 问题答案: 在内部使用。如果未强烈引用,则即使
问题内容: 我正在研究用于并行计算JavaSeis.org的软件开发框架。我需要一个强大的机制来报告线程异常。在开发过程中,了解异常来自何处具有很高的价值,因此我想在过度报告方面犯错。我还希望能够在线程中处理Junit4测试。下面的方法是合理的还是有更好的方法? 问题答案: 我不相信在使用时有标准的“钩子”来获取这些异常。但是,如果您需要支持(听起来很合理,假设您使用),则始终可以包装Callab
问题内容: (这是我的同事在其他地方发布的一个问题,但我认为我应该在这里发布,以查看是否可以吸引其他受众。) 大家好,我正在测试编写一个小型Java应用程序的可能性,该应用程序将使用Psexec启动远程作业。在测试将Java程序的stdin和stdout绑定到psexec的过程中,我遇到了一个奇怪的错误。 我的测试程序是一个基本的回声程序。它启动一个从stdin读取的线程,然后将读取的输出直接通过
问题内容: 这里有两个代码块完成(我认为是)同一件事。 我基本上是在尝试学习如何使用Java 1.5的并发性来摆脱Thread.sleep(long)。第一个示例使用ReentrantLock,第二个示例使用CountDownLatch。我想要做的事情的关键是让一个线程进入睡眠状态,直到条件在另一个线程中得到解决。 ReentrantLock在我用来确定是否唤醒另一个线程的布尔值上提供了一个锁,然
问题内容: 我有一个Java应用程序,一半时间挂起,另一半JVM崩溃。有没有我可以用来查看发生了什么的工具,它会挂起和/或崩溃?我正在使用CentOS 5.6 问题答案: 有两种不同的情况。 应用程序崩溃: 是OOM吗?NPE?有什么例外?如果发生了jvm崩溃,您将看到hs_err_.log(http://java.sun.com/j2se/1.5/pdf/jdk50_ts_guide.pdf)
问题内容: 我花了几天的时间来尝试找出如何以编程方式将值保存或更新到CustomField中,最后弄清楚它是如何完成的。因此,我将提出一个问题,然后回答该问题,就像我希望获得该问题和答案一样。 关于如何保存或更新JIRA中“自定义字段”的值的文档相互矛盾。我正在使用: 这不会将值保存到数据库中,但据我所知确实会更新值。例如,仅当在工作流后功能转换中进一步使用CustomField时才有用。 我正在
问题内容: 自Oracle启动Java 7 Update 25以来,我们的应用程序不再起作用。 最初,我们收到了一些有关Manifest文件中缺少代码库和安全性标签的警告,我们已对其进行了修复。 我们现在遇到的问题是,在控制台中,我们仅获得以下几行: 我们还会收到带有错误消息的应用程序错误对话框: 无法启动应用程序 。 详细信息按钮在例外中提供以下详细信息: 相关代码部分为: (最后一行是行号13
问题内容: 我们有一个应用程序,它通过拆分数据并对数据进行排序来导入大量文件。运行JUnit测试用例时,整个过程大约需要 16分钟 。 同样的测试,在 34分钟内 完成运行。 我们正在呼吁对文件进行排序。排序似乎需要更长的时间。我不明白有什么不同。 看它运行的IntelliJ 我在OS X上。所有类都使用Spring注入。关于IntelliJ性能提升背后的理论有哪些可能的建议?测试是相同的。我不能