90得票4回答
什么是循环反转技术?

我正在阅读一份关于 Java 的 just-in-time compiler (JIT) 优化技术的文档。其中之一是“循环反转”。文档中说: 你可以用 do-while 循环来替换常规的 while 循环。并且将 do-while 循环置于一个 if 子句中。这种替换会导致两个跳转指令少。 ...

90得票1回答
"UseCompressedOops" JVM标志是用来做什么的?何时应该使用它?

HotSpot JVM 标志 -XX:+UseCompressedOops 是什么?何时应该使用它?在 64 位 Java 实例上使用它(与不使用)会产生什么样的性能和内存使用差异?

89得票5回答
什么是具体化的泛型?它们如何解决类型擦除问题,为什么不能在不进行重大更改的情况下添加?

我读过Neal Gafter在这个主题上的博客,但仍不清楚其中的一些要点。 为什么在当前Java、JVM和现有集合API的状态下无法创建保留类型信息的Collections API实现?它们不能在将来的Java版本中替换现有实现,以确保向后兼容性吗? 举个例子:List<T> ...

87得票3回答
Java JVM 分析,线程状态 - "Monitor" 状态是什么意思?

我使用 VisualVM 连接一个多线程的 Java 应用程序,线程有 4 种状态,分别是运行,休眠,等待和监视。监视状态代表什么?等待和监视之间有什么区别?

86得票13回答
在Java中使用break语句退出循环是不好的做法吗?

我想知道在使用循环时,使用break语句来退出循环是否是一种“不好的做法”,而不是满足循环条件。 我对Java和JVM的了解不够,因此想知道这样做是否忽略了一些重要的东西。 本问题的关注点:是否存在特定的性能开销?

85得票4回答
JVM上的Haskell?

我想知道是否有一种方法可以使Haskell在JVM上运行(编译或解释)? 虽然Sourceforge上存在JHaskell,但这个项目似乎已经荒废了。 GHC使用LLVM作为编译器后端。将LLVM编译成Java字节码是一个好主意或可能吗?或者也许可以使用不同的编译器后端?

85得票13回答
获取JVM中加载的所有类的列表

我想获取一个特定包中所有类的列表,以及它们的所有子类。这些类可能已经加载到JVM中,也可能没有。

85得票7回答
Java垃圾回收:为什么有两个幸存者区?

对于Sun/Oracle的JVM,我读过GC算法将新生代分成一个Eden区域和两个Survivor区域。我想知道的是,为什么会有两个Survivor区域而不是只有一个?这个算法可以在Eden和只有一个Survivor区域之间来回反复(就像它目前在两个Survivor区域之间所做的那样);或者说...

85得票6回答
Java 9中javax.activation包的替代品是什么?

看起来在Java 9中,javax.activation包已被弃用。Oracle迁移指南建议在JVM启动时使用--add-modules java.activation选项。 但是,我想避免使用该选项并替换javax.activation包的类,因为它已经被弃用并将在未来的Java版本中被删...

84得票2回答
检查您的模块类路径是否存在缺失或冲突的依赖项。

我有一个Java和Kotlin的项目,可以成功运行和构建。然而,当我在IntelliJ中打开该项目时,我发现许多项目文件中都出现了相同的错误。 错误信息为“无法访问类'java.lang.String'。请检查您的模块类路径是否缺少或存在冲突依赖项”。 在附加的图片中可以看到这个错误: 初...