小编Yis*_*hai的帖子

将某些类的Java Collection转换为String的Collection

假设一个类(例如URI)可以使用构造函数和toString()方法转换为String或从String转换.

我有一个ArrayList<URI>,我想把它复制到一个ArrayList<String>,或者反过来.

Java标准库中是否有实用程序功能可以执行此操作?就像是:

java.util.collections.copy(urlArray,stringArray);

我知道有实用程序库提供该功能,但我不想添加不必要的库.

我也知道如何编写这样的函数,但是阅读代码并发现有人编写了标准库中已存在的函数,这很烦人.

java collections

5
推荐指数
2
解决办法
4154
查看次数

客户端最好的垃圾收集设置是什么?

最近的JVM有很多用于垃圾收集的XX参数(例如参见这里),但有哪些选项可以使客户端Swing应用程序真正表现更好?

我应该注意到,在客户端java应用程序中真正让我烦恼的一件事就是停止世界垃圾收集的大延迟.在Intelli-J IDEA中,我看到它需要三分钟或更长时间.

编辑:感谢所有的回复.只是报告回来我使用此处设置的设置,为IDEA提供了CMS垃圾收集器(这是大多数人都熟悉的应用类型的一个很好的通用参考).我还设置-XX:+ StringCache以查看它是否会降低内存需求.

一般来说,观察是常规运行性能不会降低到可以注意到它的程度.存储量减少是巨大的使用String缓存选项,但是CMS方法不彻底,最终需要阻止世界垃圾收集周期(回三分钟的等待),以清除内存(400MB在一次运行).

然而,考虑到内存占用减少,我可能只需要放置一个较小的最大内存量,这样可以使世界各地的大小更小.

IDEA 8.1.4附带JDK 1.6.0_12,所以我还没有测试G1.此外,我的机器只有2个核心,因此G1方法不会真正最大化.是时候打击老板换一台更好的机器了;).

java performance garbage-collection jvm

5
推荐指数
1
解决办法
7576
查看次数

在应用服务器的生产中使用 Google Guice 的正确阶段是什么?

这似乎是一个奇怪的问题(显而易见的答案是 Production,废话),但是如果您阅读 java 文档:

/**
  * We want fast startup times at the expense of runtime performance and some up front error
 * checking.
 */
DEVELOPMENT,

/**
 * We want to catch errors as early as possible and take performance hits up front.
 */
PRODUCTION
Run Code Online (Sandbox Code Playgroud)

假设您对应用程序服务器进行无状态调用,初始接收方法(或其他方法)会在每次调用时创建新的注入器。如果在给定的调用中不需要所有模块绑定,那么使用 Development 阶段(这是默认值)而不是预先考虑性能似乎会更好,因为您可能永远不会接受它,这里“前期”和“运行时性能”之间的区别有点没有实际意义,因为它是一个调用。

当然,这样做的缺点似乎是您将丢失错误检查,从而导致潜在的代码路径出人意料地引起问题。

所以问题归结为上述假设是否正确?当注入器的给定生命周期是一次调用时,您会在大量模块上节省性能吗?

java performance guice

5
推荐指数
1
解决办法
3505
查看次数

字段是否需要显式最终才能拥有"适当的"不可变对象?

您经常阅读有关不可变对象的信息,这些对象要求最终字段在Java中不可变.实际上是这种情况,还是仅仅是没有公开可变性而实际上没有改变状态?

例如,如果你有一个由构建器模式构建的不可变对象,你可以通过让构建器在构建时分配各个字段,或让构建器自己保存字段并最终通过将值传递给返回不可变对象来实现.它的(私有)构造函数.

使字段最终具有防止实现错误的明显优势(例如允许代码保留对构建器的引用和多次"构建"对象,而实际上是在改变现有对象),但让Builder将其数据存储在构建的对象似乎是DRYer.

所以问题是:假设Builder没有提前泄漏Object并且一旦构建就停止修改对象(例如通过将其对象的引用设置为null),实际上在""中获得了任何改进(例如改进的线程安全性)如果对象的字段是最终的,那么对象的不变性?

java immutability

5
推荐指数
1
解决办法
320
查看次数

部署爆炸耳朵的策略

我有一个构建过程,以相当复杂的方式创建一个耳朵(多个EJB jar,几个战争,几个sars(特定于JBoss).将它拼凑在一起的ant过程有点复杂.

什么是不在ANT中重新创建ejb创建逻辑的最佳策略,但仍然能够部署到应用程序服务器或用于QA和生产.

虽然我关注JBoss,但这个问题与支持爆炸式耳部署的任何应用服务器都非常相关,而且更多的是关于ANT,如何避免重新创建zip文件的逻辑与复制到目录的两个不同目标.

java ant jboss

4
推荐指数
1
解决办法
6386
查看次数

@ApplicationException 的继承可以在 EJB 3.1 中被覆盖吗?

如果我有一个带有 @ApplicationException(inherited = true, rollback = true) 的异常,但我希望子类不回滚。我可以只用@ApplciationException(rollback = false) 注释子类吗?或者这行不通?规范似乎没有说,我可以找到。

java ejb-3.1

4
推荐指数
1
解决办法
1943
查看次数

如何解析和解释ant的build.xml

是否有用于读取和ant build.xml并从中检索元素的Ant API?具体来说,我希望能够检索路径元素中的值,并能够遍历路径中的所有元素.

我的目的是检索给定路径并确保在清单中正确引用它,以便在产品投入生产时构建和清单匹配.

编辑:关于使用XML API的响应(并感谢他们),问题是当前构建的构建文件比这更复杂.即类路径引用不同的类路径并包含它,类路径中引用的元素本身在属性文件中定义,因此有太多的Ant API可以合理地重新创建.

java ant build classpath

3
推荐指数
1
解决办法
5359
查看次数

用于显示大于或等于整数的2的最小幂的代码

我需要一个Java代码,它可以找到大于或等于用户输入的任何非负整数的2的最小幂.有人可以帮忙吗?

java

3
推荐指数
1
解决办法
1623
查看次数

从C#调用Java的最简单方法?

我们在桌面上运行了一大堆Java代码,我们希望通过MS.NET用户界面(桌面而不是Web)重用它们.任何做或不做的都是非常受欢迎的.

.net c# java visual-studio

3
推荐指数
2
解决办法
1979
查看次数

是否有理由更喜欢Executors工厂方法直接实例化类?

是否有理由喜欢这样做:

private static ExecutorService service = Executors.newScheduledThreadPool(10);
Run Code Online (Sandbox Code Playgroud)

对此:

private static ExecutorService service = new ScheduledThreadPoolExecutor(10);
Run Code Online (Sandbox Code Playgroud)

java concurrency java.util.concurrent

3
推荐指数
1
解决办法
94
查看次数