哈希表。 姓名历史。 为什么不HashTable?

我们知道: ArrayList; LinkedList; TreeMap 和其他…以及CamelCase格式的所有名称,但为什么Hashtable ,而不是HashTable ? 这是无原则的问题,只是想知道:)

使用SVN将一些模板文本包含到源文件中的好方法?

我在SVN存储库中有一个Java项目,带有一堆.java文件,每个文件在文件顶部都有一个许可协议花箱(我有客户已经许可了源以及运行产品) 。 是否有一种很好的方法可以在一个地方修改/维护许可文本,而不是必须手动更新所有源文件? 看一些类似(但不完全相同)的问题,似乎SVN没有开箱即用的这种function – 其他哪种方法最合适? 编辑:理想情况下,解决方案将像SVN关键字(Id,作者等),而不是构建时解决方案。 客户也可以访问SVN存储库,因此如果许可证文本存在于文件的SVN版本中,那将是理想的。 我知道SVN有提交触发器 – 实现它的简单方法是什么? 编辑2:看看SVN钩子它看起来不像我想做的事情是可能的。 我想在文本更改时可以运行的构建过程是正确的 – 因为它不会经常更改。

如何在没有JAXBElement包装的情况下JSON-marshal JAXBElement包装的响应?

我有一个使用Spring(v4.0.5)的http服务。 它的http端点是使用Spring Web MVC配置的。 响应是由模式生成的JAXB2-anotated类。 响应包装在JAXBElement因为生成的JAXB类没有运行@XmlRootElement注释(并且架构无法修改为医生)。 我不得不通过XML编组来解决这个问题。 无论如何,它正在发挥作用。 现在我正在设置JSON编组。 我遇到的是获取具有JAXBElement “信封”的JSON文档。 { “declaredType”: “io.github.gv0tch0.sotaro.SayWhat”, “globalScope”: true, “name”: “{urn:io:github:gv0tch0:sotaro}say”, “nil”: false, “scope”: “javax.xml.bind.JAXBElement$GlobalScope”, “typeSubstituted”: false, “value”: { “what”: “what”, “when”: “2014-06-09T15:56:46Z” } } 我想要编组的只是value : { “what”: “what”, “when”: “2014-06-09T15:56:46Z” } 这是我的JSON编组配置(弹簧上下文配置的一部分): 我希望通过配置ObjectMapper可以实现这一点。 我想也可以推出我自己的序列化器。 思考? 建议?

BigIntegers对BigIntegers的力量

我正在尝试使用BigInteger类在Java中实现Fermat,Miller-Rabin或AKS算法。 我认为我已经实现了Fermat测试,只是BigInteger类不允许将BigIntegers带入BigIntegers的强大function(人们只能将BigIntegers带入原始int的强大function)。 有没有解决的办法? 有问题的行在我的代码中表示: public static boolean fermatPrimalityTest(BigInteger n) { BigInteger a; Random rand = new Random(); int maxIterations = 100000; for (int i = 0; i < maxIterations; i++) { a = new BigInteger(2048, rand); // PROBLEM WITH a.pow(n) BECAUSE n IS NOT A BigInteger boolean test = ((a.pow(n)).minus(BigInteger.ONE)).equals((BigInteger.ONE).mod(n)); if (!test) return false; } […]

Java:字符串拆分

我有以下字符串: Mr John Smith Dickson 我想把它分成三部分: 第一部分 – 先生 第二部分 – 约翰史密斯迪克森 第3部分 – john@yahoo.com 我对如何实现这一点感到困惑,任何人都可以帮忙吗? 以上名称只是样本,名称可能会有所不同,例如。 约翰,约翰史密斯,约翰史密斯迪克森

如何阻止maven-shade-plugin阻止opensaml-impl类型的java.util.ServiceLoader初始化

使用OpenSAML 3时,必须首先使用以下代码行从opensaml-saml-impl工件加载组件: InitializationService.initialize(); 这使用java.util.ServiceLoader来加载任何实现Initializer类型 。 当我编写测试并使用mvn integration-test运行它时,这很好用,我可以看到所有内容都已加载: Assert.assertTrue( XMLObjectProviderRegistrySupport .getUnmarshallerFactory() .getUnmarshallers() .size() > 400); 但是,我的项目使用maven-shade-plugin 。 如果我将代码打包到超级jar中,则上述条件不正确: mvn package java -jar /path/to/my.jar 在这种情况下,我观​​察到只有9个unmarshallers已经加载(那些在opensaml-core ,而不是那些在opensaml-saml-impl 。但是,当我观察mvn package的输出时,我可以看到类型包含在阴影jar: [INFO] Including org.opensaml:opensaml-saml-impl:jar:3.2.0 in the shaded jar. [INFO] Including org.opensaml:opensaml-profile-api:jar:3.2.0 in the shaded jar. [INFO] Including org.opensaml:opensaml-messaging-api:jar:3.2.0 in the shaded jar. [INFO] Including org.opensaml:opensaml-saml-api:jar:3.2.0 in the shaded jar. [INFO] […]

JavaFX上Canvas.snapshot()的替代方案

我正在使用JavaFX中的Canvas开发一个小图形引擎。 在某些时候,我必须渲染一个屏幕外图像,然后使用其GraphicContext在我的主canvas上打印它。 我现在正在使用此代码: private Canvas offScreenCanvas; private GraphicsContext offScreenGraphic; private SnapshotParameters parameters; private WritableImage offScreenImage; […] offScreenCanvas = new Canvas(WIDTH, HEIGHT); offScreenGraphic = offScreenCanvas.getGraphicsContext2D(); parameters = new SnapshotParameters(); parameters.setFill(Color.TRANSPARENT); […] offScreenImage = offScreenCanvas.snapshot(parameters, offScreenImage); graphic.setGlobalBlendMode(BlendMode.HARD_LIGHT); graphic.drawImage(offScreenImage, 0, 0); graphic.setGlobalBlendMode(BlendMode.SRC_OVER); 我的问题是方法snaphot()在每次执行中花费太多时间,约14毫秒。 我需要至少以60fps更新canvas,所以这几乎消耗了我必须画的所有时间。 是否有另一种方法从canvas中获取Image或WritableImage ? 也许另一个不同的过程

多个套接字导致ConnectException:连接被拒绝:连接

我在Windows XP上用Eclipse编程java。 我有一个多进程模拟,它使用ProcessBuilder来运行服务器和两个客户端。 服务器启动一个线程来侦听两个不同的套接字 – 每个客户端一个。 我可以为每个客户注释掉代码,让其他工作完全正常。 当我尝试同时运行它们时,一个客户端将始终使用ConnectException错误:连接被拒绝:连接。 它似乎是哪个客户端运行速度较慢,但​​很难说。 我可以在启动服务器之后但在客户端之前暂停,netstatvalidation两个套接字都处于活动状态。 可能是什么导致了这个? 我在下面有一些简化的代码。 更新:根据评论,我编辑了代码以在单个套接字上multithreading服务器,但我仍然遇到同样的问题。 下面的代码反映了这些变化。 看来套接字是由一个客户端打开和关闭,然后另一个客户端有机会打开它。 我可以在每个客户端的末尾抛出暂停语句,允许另一个完成,但这是一个修复,而不是解决方案。 所以现在真正的问题是,在指示它关闭之前,如何保持ServerSocket的监听? 服务器 try{ server = new ServerSocket(sockNum); } catch (IOException e) { System.out.printf(“Could not listen on port %d\n”,sockNum); System.exit(-1); } while(true){ ClientWorker w; try{ Socket connection = server.accept(); w = new ClientWorker(connection); Thread t = new Thread(w); t.start(); } […]

如何将会话从一个Tomcat服务器转移到另一个?

我们有一个用于网上商店的Tomcat服务器,我们需要在他/她登录时将用户转移到另一个(安全)服务器。这里是一个详细的解释: 1)我们有两个Tomcat服务器:一个是“常规”(HTTP),另一个是安全(HTTPS) 2)用户最初访问常规服务器 3)当他们登录时,我们需要获取他们的登录数据,以及他们当前所在页面(或试图查看)的信息,将其传递给安全服务器并进行实际登录; 例如,未登录的用户会看到产品列表,点击“购买”并显示弹出窗口,要求用户登录; 用户输入他/她的凭证,并将这些凭证以及有关他想要购买的产品的信息传递给安全服务器; 安全服务器接收这些,执行登录并向用户显示所请求的产品 怎么可以这样做? 请注意以下事项: 1)我们尝试过使用cookies,但我们决定不采用这种方式 2)将会话保持到数据库然后让安全服务器获取它也不是一个选项 还有其他方法吗? 我们正在考虑创建一个对象,然后将其作为HTTP POST参数传递,但我不确定如何做到这一点(我已经完成了任务)。 对于它的价值,我们使用的技术是Tomcat服务器,Wicket,Spring,iBatis和MySQL。 提前致谢 :)

javascript – ajax – 在JAVA中关闭浏览器时关闭会话

在我的Web应用程序中 1.1当用户突然关闭浏览器时,我必须关闭会话。 1.2。 当用户尝试“在新选项卡中打开”时 – 应将用户转发到新选项卡中的“登录页面” 我打算使用JAVASCRIPT和AJAX在JSPX中实现它。 任何人都可以共享任何示例代码来实现他,因为我是javascript / ajax的新手吗?