我正在阅读一份关于 Java 的 just-in-time compiler (JIT) 优化技术的文档。其中之一是“循环反转”。文档中说: 你可以用 do-while 循环来替换常规的 while 循环。并且将 do-while 循环置于一个 if 子句中。这种替换会导致两个跳转指令少。 ...
HotSpot JVM 标志 -XX:+UseCompressedOops 是什么?何时应该使用它?在 64 位 Java 实例上使用它(与不使用)会产生什么样的性能和内存使用差异?
我读过Neal Gafter在这个主题上的博客,但仍不清楚其中的一些要点。 为什么在当前Java、JVM和现有集合API的状态下无法创建保留类型信息的Collections API实现?它们不能在将来的Java版本中替换现有实现,以确保向后兼容性吗? 举个例子:List<T> ...
我使用 VisualVM 连接一个多线程的 Java 应用程序,线程有 4 种状态,分别是运行,休眠,等待和监视。监视状态代表什么?等待和监视之间有什么区别?
我想知道在使用循环时,使用break语句来退出循环是否是一种“不好的做法”,而不是满足循环条件。 我对Java和JVM的了解不够,因此想知道这样做是否忽略了一些重要的东西。 本问题的关注点:是否存在特定的性能开销?
我想知道是否有一种方法可以使Haskell在JVM上运行(编译或解释)? 虽然Sourceforge上存在JHaskell,但这个项目似乎已经荒废了。 GHC使用LLVM作为编译器后端。将LLVM编译成Java字节码是一个好主意或可能吗?或者也许可以使用不同的编译器后端?
对于Sun/Oracle的JVM,我读过GC算法将新生代分成一个Eden区域和两个Survivor区域。我想知道的是,为什么会有两个Survivor区域而不是只有一个?这个算法可以在Eden和只有一个Survivor区域之间来回反复(就像它目前在两个Survivor区域之间所做的那样);或者说...
看起来在Java 9中,javax.activation包已被弃用。Oracle迁移指南建议在JVM启动时使用--add-modules java.activation选项。 但是,我想避免使用该选项并替换javax.activation包的类,因为它已经被弃用并将在未来的Java版本中被删...
我有一个Java和Kotlin的项目,可以成功运行和构建。然而,当我在IntelliJ中打开该项目时,我发现许多项目文件中都出现了相同的错误。 错误信息为“无法访问类'java.lang.String'。请检查您的模块类路径是否缺少或存在冲突依赖项”。 在附加的图片中可以看到这个错误: 初...