Tag: java

Java枚举与迭代器的区别

这两个接口有什么区别? Enumeration是否比使用Iterator有好处? 如果有人可以详细说明,请参考文章,将不胜感激。

“Parallel.For”for Java?

我想知道是否有一个Parallel.For相当于.net版本的Java? 如果有人可以提供一个例子? 谢谢!

如何在Lucene中查询自动完成/build议?

我正在寻找一种方法来在Lucene中查询自动完成/build议。 我search了一下,稍微玩了一下,但是我所见过的所有例子似乎都是在Solr中设置filter。 我们不使用Solr,也不打算在不久的将来使用Solr,Solr显然只是围绕着Lucene,所以我想必须有办法做到这一点! 我研究过使用EdgeNGramFilter,我意识到我必须在索引字段上运行filter,然后获取令牌,然后将其与input的查询进行比较…我只是努力使把两个代码放进去,所以非常感谢帮助! 要清楚我在找什么(我意识到我不是太清楚,对不起) – 我正在寻找一个解决scheme,当search一个术语,它会返回一个build议的查询列表。 在search字段中input“inter”时,会返回一个build议查询列表,如“internet”,“international”等。

如果可能的话,有人可以简单地向我解释访问者模式的用途

我对访客模式及其用途感到困惑。 我似乎无法想象使用这种模式或其目的的好处。 如果有人能够用可能的例子来解释,那就太棒了。 =) 提前致谢

为什么selectmaven? 有什么好处?

比起ant来说,使用maven的主要好处是什么? 这似乎比一个有用的工具更烦人。 我使用maven 2,使用纯Java Eclipse EE(无m2eclipse)和tomcat。 maven的支持者相信 Maven可以让你轻松获得你的包依赖 Maven强迫你有一个标准的目录结构 在我的经验中 弄清楚软件包依赖关系并不是那么难。 你反正很less这样做。 在项目设置过程中可能只有一次,在升级过程中可能只有几次。 有了maven,你最终可以修复不匹配的依赖关系,写不好的poms,并且不pipe怎样都会打包排除。 缓慢的FIX-COMPILE-DEPLOY-DEBUG循环,杀死生产力。 这是我的主要抱怨。 你做了一个改变,你必须等待Maven构build才能启动并等待它部署。 没有任何热门的部署。 还是我只是做错了? 请指点我正确的方向,我是耳朵。

由于非随机哈希函数而导致的应用程序漏洞

以下摘录来自一篇文章 ,解释了由于散列数据结构中使用的非随机散列函数而导致拒绝服务(DoS)攻击的可能性。 可以通过利用底层散列algorithm中的可预测冲突来利用该条件。 为了validation它,我经历了从Oracle的Java HashMap的引用实现,确实发现了一个静态哈希函数: static int hash(int h) { h ^= (h >>> 20) ^ (h >>> 12); return h ^ (h >>> 7) ^ (h >>> 4); } 关于该主题的另一篇论文讲述: Tomcat 6.0.32服务器在大约44分钟的i7 CPU时间内parsing2MB的冲突密钥string,所以约6kbit / s的攻击者可以让一个i7内核持续忙碌。 如果攻击者有千兆连接,他可以保持大约100.000个i7内核忙碌 我们如何防范这个漏洞呢? 此外,有很多软件,我们使用开源(Tomcat等),依靠这种实现。

如何避免Java游戏中的垃圾收集延迟? (最佳实践)

我是用于Android平台的Java性能调整互动游戏。 曾经有一段时间,垃圾收集的绘图和交互有一个呃逆。 通常不到十分之一秒,但有时在非常慢的设备上可能会达到200毫秒。 我使用ddms分析器(Android SDK的一部分)来search我的内存分配来自哪里,并从我的内部绘图和逻辑循环中消除它们。 最严重的罪犯是短循环, for(GameObject gob : interactiveObjects) gob.onDraw(canvas); 每执行一次循环,都会分配一个iterator 。 我现在使用数组( ArrayList )为我的对象。 如果我在内部循环中需要树或哈希,我知道我需要小心,甚至重新实现它们,而不是使用Java集合框架,因为我无法负担额外的垃圾回收。 当我看着优先级队列时,可能会出现这种情况。 我也有麻烦,我想使用Canvas.drawText显示分数和进度。 这不好, canvas.drawText("Your score is: " + Score.points, x, y, paint); 因为Strings , char数组和StringBuffers将被分配到所有的工作。 如果你有几个文本显示项目,并运行框架每秒60次开始累加,并会增加你的垃圾收集打嗝。 我认为这里的最佳select是保持char[]数组并将其手动解码为int或double ,并将string连接到开始和结束。 我想听听是否有更清洁的东西。 我知道那里一定有其他人在处理这件事。 你如何处理它,以及你发现在Java或Android上交互运行的陷阱和最佳实践? 这些gc问题足以让我错过手动内存pipe理,但不是很多。

良好的XMPP Java库的服务器端?

我希望在Java中实现一个简单的XMPP服务器。 我需要的是一个可以parsing和理解来自客户端的xmpp请求的库。 我看过Smack(下面提到)和JSO。 Smack似乎只是客户端,所以它可能有助于parsing数据包,但不知道如何响应客户端。 JSO保持它看起来很老。 唯一有希望的途径是将Openfire作为整个商业(OSS)XMPP服务器。 我只是希望在Netty或Mina之上添加几行代码,所以我可以开始处理一些消息。 乔 – 那么我想要做的答案有点长 – 我会尽量保持它的简短。 有两件事情,只是松散的相关: 1)我想编写一个XMPP服务器,因为我想为两个客户端通信编写一个自定义协议。 基本上我正在考虑一个联网的iPhone应用程序 – 但我不想依靠低级的二进制协议,因为使用像XMPP这样的东西意味着应用程序可以很快从本地的基于WiFi的应用程序“长大”到基于互联网的应用程序… 交换的消息应该是相对较低的延迟,所以严格来说二进制协议是最好的,但是我觉得可能值得探讨一下,如果XMPP没有引入太多的开销,以至于我可以使用它,然后从中获得可扩展性和后来的柔韧性。 2)我为兵马俑工作 – 所以我疯狂地集中一切。 一旦我开始考虑编写一些自定义的服务器代码,我想我想集群它。 兵马俑使Java POJOs扩展微不足道,所以我的想法是构build一个超级简单的XMPP服务器作为一个演示应用程序的兵马俑。 基本上每个用户将通过TCP连接连接到服务器,这将注册用户到哈希映射。 每个用户将有一个LinkedBlockingQueue与一个侦听器线程从队列中获取消息。 然后,任何想要发送消息给任何其他用户(如任何旧的聊天应用程序)的连接用户只需通过连接向该用户发送XMPP消息(如往常一样)。 服务器拿起它,在地图中查找相应的用户对象,并将消息放到队列中。 由于队列是群集的,不pipe目标用户是连接到同一个物理服务器还是不同的物理服务器,消息都会被传送,正在侦听的线程会将其拾取并将其发送回目标用户的tcp连接。 所以 – 恐怕不能总结。 但这就是我想要做的。 我想我可以写一个Openfire的插件来完成#1,但是我认为它需要处理很多pipe道,所以很难做到#2(特别是因为我希望有一小部分代码可以适合简单的10-20kb Maven项目)。

如何注入依赖到一个自我实例化的对象在spring?

假设我们有一堂课: public class MyClass { @Autowired private AnotherBean anotherBean; } 然后我们创build了这个类的一个对象(或者其他一些框架已经创build了这个类的实例)。 MyClass obj = new MyClass(); 是否有可能仍然注入依赖关系? 就像是: applicationContext.injectDependencies(obj); (我认为谷歌Guice有这样的东西)

如何在Java中创build唯一的ID?

我正在寻找最好的方式来创build一个独特的ID作为一个string在Java中。 任何指导赞赏,谢谢。 我应该提到我正在使用Java 5。