196得票5回答
如何从Java应用程序内部获取虚拟机参数?

我需要检查是否已明确设置了可以传递给JVM的某些选项,或者其具有默认值。 更具体地说:我需要创建一个具有比默认线程更高的本机堆栈大小的特定线程,但是如果用户希望通过指定-Xss选项自己处理此类事情,则希望创建所有具有默认堆栈大小的线程(这将由用户在-Xss选项中指定)。 我已经检查了诸如j...

188得票5回答
为什么Java虚拟机中没有GIL?而Python为什么如此需要它?

我希望有人能够提供一些关于Java虚拟机的基础知识,它是如何在没有全局解释器锁(GIL)的情况下实现线程的,而Python却需要这样做。

187得票3回答
JVM标志CMSClassUnloadingEnabled实际上是做什么的?

我怎么也找不到Java VM标志CMSClassUnloadingEnabled的定义,除了一些非常模糊的高级定义,比如“解决PermGen问题”(它并没有, 顺便说一句)。 我已经在Sun/Oracle的网站上查找过,甚至选项列表也没有明确说明它的作用。 根据该标志的名称,我猜测CMS垃...

187得票5回答
什么是invokedynamic,我该如何使用它?

我经常听到有关JVM正在添加的所有新功能,其中一个很酷的功能是invokedynamic。我想知道它是什么以及它如何使Java中的反射编程更加容易或更好? 我听说JVM正在增加一些很酷的新功能,其中之一就是invokedynamic。我想知道它是什么,以及它如何使Java中的反射编程更加容易...

181得票14回答
在运行时获取Java版本

我需要解决JDK 1.5中的Java bug,该问题在1.6中已经修复。我使用以下条件:if (System.getProperty("java.version").startsWith("1.5.")) { ... } else { ... } 这对其他JVM是否适用?有更好...

172得票8回答
由于JVM堆空间不足,守护程序即将过期

我刚刚将 Android Studio 升级到 3.5 Beta 1 版本,但在构建运行时出现以下信息: 由于 JVM 堆空间耗尽而终止守护程序 此外,构建所需的时间也更长了。请问有人知道这是什么原因吗?

171得票9回答
Java中变量的内存地址

请看下面的图片。 当我们使用Java中的new关键字创建一个对象时,我们从操作系统获取一个内存地址。 当我们写out.println(objName)时,我们可以看到一个“特殊”的字符串作为输出。我的问题是: 这个输出是什么? 如果它是操作系统给我们的内存地址: a)我如何将此字符串转换...

170得票5回答
Java 8的代码能否编译运行在Java 7的虚拟机上?

Java 8引入了重要的新语言特性,例如lambda表达式。这些语言上的变化是否伴随着编译后的字节码的显著变化,从而需要使用一些反向转换器才能在Java 7虚拟机上运行?

168得票12回答
覆盖Java System.currentTimeMillis以测试时间敏感代码

除了手动更改主机机器的系统时钟,是否有一种方法可以通过代码或JVM参数覆盖System.currentTimeMillis所呈现的当前时间? 背景说明: 我们有一个系统运行着许多会围绕当前日期(例如每月第一天,每年第一天等)进行逻辑计算的会计任务。 不幸的是,许多旧代码调用函数,例如new D...

163得票1回答
jVisualVM中采样和分析的区别

在VisualVM中,采样和分析各有一个单独的选项卡。采样和分析在VisualVM中有什么区别?