Questions tagged «java»

Java是一种流行的高级编程语言。如果您在使用或理解语言本身时遇到问题,请使用此标签。这个标签很少单独使用,最常与[spring],[spring-boot],[jakarta-ee],[android],[javafx],[gradle]和[maven]结合使用。

6
BigInteger的.isProbablePrime()的可能用例是什么?
该方法BigInteger.isProbablePrime()很奇怪。从文档中可以看出,数字是否为素数,概率为1 - 1 / 2^arg,其中arg整数参数为。 它已经存在于JDK中很长时间了,因此,它必须具有用途。我对计算机科学和算法(以及数学)的有限了解告诉我,知道一个数字是否“可能”是质数而不是完全是质数并没有什么意义。 那么,在什么情况下想使用此方法呢?密码学?
84 java  primes 

18
Java中的True-way解决方案:解析2个字符串中的2个数字,然后返回它们的总和
相当愚蠢的问题。给定代码: public static int sum(String a, String b) /* throws? WHAT? */ { int x = Integer.parseInt(a); // throws NumberFormatException int y = Integer.parseInt(b); // throws NumberFormatException return x + y; } 您能告诉我Java是否不错?我在说的NumberFormatException是一个未经检查的异常。您不必将其指定为sum()签名的一部分。而且,据我所知,未检查的异常的想法只是表明程序的实现是不正确的,甚至更多,捕获未检查的异常是一个坏主意,因为这就像在运行时修复错误的程序一样。 有人可以澄清一下: 我应该指定NumberFormatException方法签名的一部分。 我应该定义自己的检查异常(BadDataException),NumberFormatException在方法内部进行处理,然后将其重新抛出BadDataException。 我应该定义自己的检查异常(BadDataException),以某种方式(如正则表达式)验证两个字符串,BadDataException如果不匹配则将其抛出。 你的想法? 更新: 想象一下,出于某种原因,您不是应该使用开放源代码框架。您查看方法的签名并思考-“好,它永远不会抛出”。然后,有一天,您遇到了一个例外。正常吗 更新2: 有评论说我sum(String, String)的设计不好。我绝对同意,但是对于那些相信,如果我们拥有良好的设计,就不会出现原始问题,这是一个额外的问题: 问题定义是这样的:您有一个数据源,数字存储为 Strings。该源可以是XML文件,网页,带有2个编辑框的桌面窗口,无论如何。 您的目标是实现采用这2 Strings的逻辑,并将其转换为ints并显示消息框,说“和为xxx”。 无论您使用什么方法来设计/实现此功能,您都将拥有以下两点内部功能: 在那里你转换的地方String,以int 加2int秒的地方 …

7
如何将java.util.logging发送到log4j?
我有一个现有应用程序,它针对log4j进行所有日志记录。我们使用了许多其他库,这些库也使用log4j或对照Commons Logging进行日志记录,最终在环境中使用log4j进行记录。我们的依赖项之一甚至针对slf4j记录日志,它也可以正常工作,因为它最终也可以委托给log4j。 现在,我想为一些缓存需求将ehcache添加到此应用程序。先前版本的ehcache使用commons-logging,在这种情况下本来可以很好地工作,但是从1.6-beta1版本开始,他们已经删除了commons-logging的依赖关系,并改为使用java.util.logging。 并不是很熟悉java.util.logging可用的内置JDK日志记录,是否有一种简单的方法来针对log4j记录发送到JUL的任何日志消息,因此我可以使用现有配置并为即将到来的任何日志记录进行设置从ehcache? 查看JUL的javadocs,看来我可以设置一堆环境变量来更改LogManager所使用的实现,并可能使用它来将log4j封装Logger在JULLogger类中。这是正确的方法吗? 具有讽刺意味的是,当世界上大多数(大多数)使用第三方库时,库使用内置的JDK日志记录会引起如此麻烦。

12
“ glob”类型模式是否具有等效的java.util.regex?
是否存在用于在Java中进行“全局”类型匹配的标准(最好是Apache Commons或类似的非病毒)库?当我不得不在Perl中执行类似的操作时,我只是将所有的“ .”更改为“ \.”,将“ *”更改为“ .*”,将“ ?”更改为“ .”,但是我想知道是否有人做了为我工作。 相似的问题:从全局表达式创建正则表达式
84 java  glob 

7
Java:通过引用传递int的最佳方法
我有一个解析函数,该函数解析字节缓冲区中的编码长度,它以int形式返回解析后的长度,并以整数arg形式进入缓冲区。我希望函数根据解析的内容来更新索引,即要通过引用传递该索引。在C语言中,我会通过一个int *。用Java做到这一点最干净的方法是什么?我目前正在查看传递索引arg。作为int[],但有点难看。

25
生成质数的最优雅方法
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 改善这个问题 什么是实现此功能的最佳方法: ArrayList generatePrimes(int n) 此函数生成第一个n素数(edit:where n>1),因此generatePrimes(5)将返回ArrayListwith {2, 3, 5, 7, 11}。(我正在用C#进行此操作,但是我对Java实现很满意-或其他与此类似的语言(因此没有Haskell))。 我确实知道如何编写此函数,但是昨晚当我这样做时,它并没有达到我希望的那样好。这是我想出的: ArrayList generatePrimes(int toGenerate) { ArrayList primes = new ArrayList(); primes.Add(2); primes.Add(3); while (primes.Count < toGenerate) { int nextPrime = (int)(primes[primes.Count - 1]) + 2; while (true) { bool isPrime = true; foreach (int n …
84 c#  java  algorithm  primes 

10
将Hibernate Query.list()强制转换为List <Type>的“正确”方法是什么?
我是Hibernate的新手,我正在写一个简单的方法来返回与特定过滤器匹配的对象列表。List&lt;Foo&gt;似乎是自然的回报类型。 不管我做什么,除非雇用了ugly,否则似乎都无法使编译器满意@SuppressWarnings。 import java.util.List; import org.hibernate.Query; import org.hibernate.Session; public class Foo { public Session acquireSession() { // All DB opening, connection etc. removed, // since the problem is in compilation, not at runtime. return null; } @SuppressWarnings("unchecked") /* &lt;----- */ public List&lt;Foo&gt; activeObjects() { Session s = acquireSession(); Query q …


5
从OutputStream创建InputStream的最有效方法
此页面:http : //blog.ostermiller.org/convert-java-outputstream-inputstream 描述如何从OutputStream创建InputStream: new ByteArrayInputStream(out.toByteArray()) 其他选择是使用PipedStreams和新线程,这很麻烦。 我不喜欢将许多兆字节复制到新的内存字节数组中的想法。是否有一个图书馆可以更有效地做到这一点? 编辑: 根据劳伦斯·贡萨尔维斯(Laurence Gonsalves)的建议,我尝试了PipedStreams,结果发现它们并不难处理。这是clojure中的示例代码: (defn #^PipedInputStream create-pdf-stream [pdf-info] (let [in-stream (new PipedInputStream) out-stream (PipedOutputStream. in-stream)] (.start (Thread. #(;Here you write into out-stream))) in-stream))

10
测试JAX-RS Web服务?
我目前正在寻找为基于JAX-RS(用于RESTful Web服务的Java API)的Web服务创建自动化测试的方法。 我基本上需要一种方法来向其发送某些输入并验证我是否获得了预期的响应。我更愿意通过JUnit做到这一点,但是我不确定如何实现。 您使用什么方法来测试您的Web服务? 更新:正如entzik所指出的那样,将Web服务与业务逻辑分离可以让我对业务逻辑进行单元测试。但是,我也想测试正确的HTTP状态代码等。

5
在多线程环境中使用HttpClient的最佳实践
一段时间以来,我一直在多线程环境中使用HttpClient。对于每个线程,当它启动连接时,它将创建一个全新的HttpClient实例。 最近,我发现通过使用这种方法,它可能导致用户打开了太多端口,并且大多数连接都处于TIME_WAIT状态。 http://www.opensubscriber.com/message/commons-httpclient-dev@jakarta.apache.org/86045.html 因此,不是每个线程都这样做: HttpClient c = new HttpClient(); try { c.executeMethod(method); } catch(...) { } finally { method.releaseConnection(); } 我们计划拥有: [方法A] // global_c is initialized once through // HttpClient global_c = new HttpClient(new MultiThreadedHttpConnectionManager()); try { global_c.executeMethod(method); } catch(...) { } finally { method.releaseConnection(); } 在正常情况下,将由50个以上的++线程同时访问global_c。我想知道,这会造成性能问题吗?MultiThreadedHttpConnectionManager是否使用无锁机制来实现其线程安全策略? 如果10个线程正在使用global_c,其他40个线程是否将被锁定? 还是在每个线程中创建一个HttpClient实例,但显式释放连接管理器会更好? [方法B] …

9
独立的Java代码格式化程序/美化工具/漂亮打印机?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 5年前关闭。 改善这个问题 我对了解Java的高质量独立源代码格式器的可用选择感兴趣。 该格式必须是独立的,也就是说,它必须支持“批量”模式是从任何特定的开发环境脱钩。理想情况下,它也应独立于任何特定的操作系统。因此,这里对IDE du jour的内置格式化程序没有什么兴趣(除非IDE支持批处理模式格式化程序调用,也许是从命令行启动)。用封闭源C / C ++编写的仅在Windows上运行的格式化程序不是理想的,但有些有趣。 明确地说,“格式器”(或“美化器”)与“样式检查器”不同。格式化程序接受源代码作为输入,应用样式规则,并生成在样式上与原始源代码等效的样式化源代码。语法修改仅限于诸如在更改空格中修改代码布局或组织import语句之类的事情。很少(如果有)执行其他重构。样式检查器还应用样式规则,但是它只是报告违反规则的情况,而不会产生修改后的源代码作为输出。所以图片看起来像这样: 格式化程序(生成符合样式规则的修改后的源代码) 阅读源代码→应用样式规则→编写样式源代码 样式检查器(不产生修改的源代码) 阅读源代码→应用样式规则→违反规则 进一步说明 解决方案必须是高度可配置的。我希望能够指定自己的样式,而不仅仅是从预设列表中进行选择。 另外,我不是在寻找用Java编写的可以漂亮打印许多东西的通用漂亮打印机。我想样式化Java代码。 我也不一定会对多种语言的统一格式器感兴趣。我想对于解决方案来说,它支持Java以外的其他语言可能会很好,但这不是必须的。 此外,仅执行代码突出显示的工具就可以 了。 我对Web服务也不感兴趣。我想要一个可以在本地运行的工具。 最后,解决方案不必局限于开源,公共领域,共享软件,免费软件,商业软件或其他任何软件。所有形式的许可都是可以接受的。



3
如何使用Mockito匹配传递给Class <T>的参数的null
我有这样的方法: public &lt;T&gt; method(String s, Class&lt;T&gt; t) {...} null在将匹配器用于其他参数时,我需要检查传递给第二个参数的方法,我一直在这样做: @SuppressWarnings("unchecked") verify(client).method(eq("String"), any(Class.class)); 但是,有没有更好的方法(没有抑制警告)?T表示某些其他方法的返回类型,有时void在某些情况下null会传入。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.