草庐IT

jvm-options

全部标签

java - Java 8 中 Optional 类型的有效使用

这是Java8中Optional类型的有效(预期)用法吗?Stringprocess(Strings){returnOptional.ofNullable(s).orElseGet(this::getDefault);} 最佳答案 我会再试一次。这是一个有效的用法吗?是的,从狭义上讲,它编译并产生您期望的结果。这是预期用途吗?不,现在,有时事情会发现它们的用处超出了它们最初的用途,如果成功了,那就太好了。但是对于Optional,我们发现通常事情不会很顺利。BrianGoetz我在我们的JavaOne2015演讲APIDesignW

java - 有没有办法在不使用外部 JAVA_TOOL_OPTIONS 的情况下使用 UTF-8 制作 Maven 构建类文件?

我不想依赖外部环境变量来强制Maven使用UTF-8构建我的类。在Mac上,我在使用Maven构建时遇到了各种各样的问题。只有以下选项解决了问题:exportJAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8mvncleaninstall但是我正在分发我的项目,依赖用户设置此环境变量来正确构建项目是没有意义的。尝试了这里描述的一切:enablingUTF-8encodingforclojuresourcefiles有人知道那个令人敬畏的Maven问题吗? 最佳答案 @JoopEggen在这里给出了正确的答

java - 使用 Optional.ofNullable 替代三元运算符是一种好习惯吗?

考虑这个表达式的用法:Stringhi=Optional.ofNullable(sayHi()).orElse("-");有效对应于这个三元表达式:Stringhi=sayHi()!=null?sayHi():"-";Optional.ofNullable与方法调用的这种用法是一种好的做法吗?或者只是额外冗长的编码?我认识到Optional.ofNullable实际上创建了一个变量并避免调用sayHi()方法两次。为了避免这个问题,您实际上可以创建一个额外的变量,但这会增加三元选项的冗长程度:Stringhi=sayHi();hi=hi!=null?hi:"-";另一方面,Option

java - 当我需要使用 Optional.orElseGet() 而不是 Optional.orElse()

我需要对此有一个明确的解释,即使我读过这个link关于差异但没有明确说明。那么任何人都可以用代码简单地向我解释一下吗? 最佳答案 我想我开始理解你的问题了。Optional的执行顺序可能与我们在过程编程中习惯的顺序不同(Java流和其他使用lambda的代码也是如此)。我将使用Eugene’sanswer中的两个示例:o1.orElse(newMyObject());//1055e4af这是普通的旧Java:它是对orElse()的调用,以newMyObject()作为参数。因此首先评估参数并创建一个新的MyObject。然后将其传

java - LambdaConversionException 与泛型 : JVM bug?

我有一些带有方法引用的代码,编译正常但在运行时失败。异常(exception)是这样的:Causedby:java.lang.invoke.LambdaConversionException:Invalidreceivertypeclassredacted.BasicEntity;notasubtypeofimplementationtypeinterfaceredacted.HasImagesEntityatjava.lang.invoke.AbstractValidatingLambdaMetafactory.validateMetafactoryArgs(AbstractVali

java - 等待/通知如何在 JVM 级别工作?

等待和通知看起来像是在线程之间传递的消息,如果这是真的,则必须有队列来缓冲这些消息。如果是这样,那么必须有用于向队列中添加消息和从队列中删除消息的原子操作,还必须有一个用于监听这些消息的每个Java线程的辅助线程?很高兴听到您的想法。 最佳答案 Waitandnotifyseemlikemessagesthatarepassedbetweenthreads,它们真的不是消息。当线程调用wait()时,它会将自己放入与特定对象监视器关联的等待队列中。当另一个线程调用notify()时,它会将第一个线程(如果有)从队列中拉出并将其放入“

java - JVM 可以在运行时优化一个不变的枚举方法吗?

JVM能否在以下场景下进行运行时优化?我们有以下情况,我们有这个接口(interface):publicinterfaceECSResource{defaultintgetFor(finalEntityentity){returnResourceRetriever.forResource(this).getFor(entity);}}以及具体的实现如:privatestaticenumTestResourcesimplementsECSResource{TR1,TR2;}JVM是否能够(在运行时)确定枚举实例(如TestResources.TR1)属于单个ResourceRetriev

java - Surefire Maven 插件 : "Corrupted STDOUT by directly writing to native stream in forked JVM"

我的JUnit测试在通过Maven和Surefire插件(下面的版本信息)运行时失败了。我看到错误消息:CorruptedSTDOUTbydirectlywritingtonativestreaminforkedJVM4.SeeFAQwebpageandthedumpfileC:\(...)\target\surefire-reports\2019-03-20T18-57-17_082-jvmRun4.dumpstreamFAQ页面指出了一些可能的原因,但我不知道如何使用这些信息来开始解决这个问题:CorruptedSTDOUTbydirectlywritingtonativestre

启用控制台的 Java JVM Eclipse 远程调试

当我使用在不同主机(如生产环境)上运行的JVM机器中的套接字连接到Eclipse中正在运行的JVM时,是否有办法在控制台中也获取STDOUT/STDERROR输出,即也启用控制台? 最佳答案 有点……我最近设置了一个ant脚本来将更新部署到远程服务器,然后自动重启它。重新启动脚本是使用来自ant的putty的plink实用程序调用的。重启脚本停止了服务器,然后以远程Debug模式启动它,这样我就可以从我的本地eclipse链接到它进行测试/调试。有趣的是,我没有将服务器作为后台进程启动,因此所有标准输出都被发送回plink并显示在e

java - JVM 任意精度库

我正在做一个项目(在Scala中),我需要在其中操作一些非常大的数字;太大而不能用整数类型表示。Java提供了BigInteger和BigDecimal类(而scala为它们提供了一个很好的瘦包装器)。但是,我注意到这些库比我过去使用的其他任意精度库(即http://www.ginac.de/CLN/)要慢得多,而且速度差异似乎比单独归因于语言的速度差异更大。我对我的程序做了一些分析,44%的执行时间花在了BigInteger乘法上。我想稍微加快我的程序,所以我正在寻找比BigInteger类(及其Scala包装器)更快、更高效的选项。我看过LargeInteger(来自JScienc