草庐IT

Cucumber-JVM

全部标签

jvm中的Java对象ID

在Eclipse中调试时,对象值附近会显示一个对象ID。例如:28332是session对象的ID。另一个示例:waitingfor:(id=101)显示在Debug面板中。这些ID既不是哈希码也不是System.identityHashCode。有人知道-如何获取对象的thisid? 最佳答案 我想他们内部有一个IdentityHashMap,为每个对象分配一个唯一的(但在其他方面没有意义的)整数。这应该在Eclipse调试器内部(不是对象具有的特殊id)。你是问怎么搞定的?编辑:我会像这样设置断点(注意我不熟悉Eclipse):

java - 了解最大 JVM 堆大小 - 32 位与 64 位

我有read32位Windows上的最大堆大小约为1.5GB,这是因为JVM需要连续内存。有人可以解释“连续内存”的概念以及为什么在Windows上最多只有1.5GB吗?其次,64位Windows上的最大堆大小是多少,为什么这与32位上可用的不同? 最佳答案 32位/64位部分与Java无关事实证明,32位系统中的内存位置由32位无符号整数引用。这允许多达2^32个可能的内存位置。由于每个位置存储1个字节,因此如果您愿意,您可以获得2^32个字节或4GB。在64位系统上,有2^64个位置,即16艾字节。现在,在Windows中,连续

java - (Oracle) Java JVM 如何知道闰秒正在发生?

一个leapsecondwilloccur2015年6月30日。不同的操作系统似乎以不同的方式处理这种情况。在我的特殊情况下,我们正在运行一个RedHat6.4系统,该系统带有高度依赖时间的定制Java(JDK1.7)软件。根据一些recentRedHatreleasedinformation我发现,我们系统的NTP守护进程会通过重复23:59:59两次来确保操作系统自动处理闰秒。我的问题是:如果我有一个长时间运行的JDK1.7进程,它如何知道闰秒正在发生?我的意思是,Java最终如何知道IERS人们已经决定插入闰秒?Date文档似乎表明知道闰秒,但似乎无济于事。我可以假设JDK,当构

java - Scala 宏和 JVM 的方法大小限制

我正在用Scala宏替换Java程序中的一些代码生成组件,并且遇到了Java虚拟机对单个方法生成的字节码大小的限制(64KB)。例如,假设我们有一个很大的XML文件,它表示我们想要在程序中使用的从整数到整数的映射。我们想避免在运行时解析这个文件,所以我们将编写一个宏来在编译时进行解析并使用文件的内容来创建我们方法的主体:importscala.language.experimental.macrosimportscala.reflect.macros.ContextobjectBigMethod{//Forthissimplifiedexamplewe'lljustmakesomeda

java - 如果我使用最新的 JDK 编译 Java 文件,那么旧的 JVM 是否能够运行 .class 文件?

字节码是否依赖于创建它的Java版本? 最佳答案 IfIcompiledajavafileinthenewestJDK,wouldanolderJVMbeabletorunthe.classfiles?这取决于三件事:您正在谈论的实际Java版本。例如,1.4.0JVM可以运行由1.4.2编译器编译的代码,但1.3.xJVM不能1。使用的编译标志。有一个-target编译器标志,告诉它生成将在较旧的(目标)JVM上运行的代码。-source编译器标志告诉它只接受旧版JVM的语言特性。(这种方法并不总是有效,具体取决于您的代码使用的J

java - 运行 Java 给出 "Error: could not open ` C :\Program Files\Java\jre6\lib\amd64\jvm. cfg'"

经过多年的正常工作,我在尝试启动JVM时突然收到此消息:Error:couldnotopen`C:\ProgramFiles\Java\jre6\lib\amd64\jvm.cfg'我尝试卸载,但收到一条消息说缺少DLL(未指定)尝试重新安装,但无济于事。同时,在尝试启动Scala时,我得到:\Java\jdk1.6.0_25\bin\java.exewasunexpectedatthistime.检查%JAVA_HOME%和%path%-都OK谁能帮忙? 最佳答案 我检查了我的环境变量-JAVA_HOME&PATH,它们都指向C:

java - 如何用 Java 编写 JVM

我正在简要阅读Maxine这是一个用Java编写的开源JVM实现。这对我来说听起来很循环。如果java需要虚拟机来运行,那么虚拟机本身如何用Java编写(VM代码不会需要在其中运行的VM,等等?)。编辑:好的,所以我发现我忽略了Java不必在VM中运行的事实。那么如何解释如何用LISP编写LISP编译器呢?还是应该完全是一个新问题? 最佳答案 您一开始就认为Java需要虚拟机是不正确的。查看项目GCJ:TheGNUCompilerfortheJavaProgrammingLanguage.

java - Haskell 与 JVM 性能对比

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭10年前。我想为一个网站编写一个后端系统(它将是一个自定义的搜索式服务)。它需要高度并发和快速。考虑到我对并发的期望,我计划使用Haskell或Scala等函数式语言。不过,速度也是重中之重。http://benchmarksgame.alioth.debian.org结果似乎表明Java几乎与C/C++一样快,Scala通常相当不错,但对于大多数任务,Has

java - Java(JVM)如何为每个线程分配堆栈

Java应用程序启动时所有线程都有一个堆。每个线程都有自己的堆栈。当一个Java应用程序启动时,我们使用JVM选项-Xms和-Xmx来控制堆的大小和-Xss控制堆栈大小。我的理解是,正在创建的堆成为JVM的“托管”内存,并且所有正在创建的对象都放置在那里。但是堆栈创建是如何工作的?Java在创建每个线程时是否为每个线程创建一个堆栈?如果是这样,堆栈在内存中的确切位置?它肯定不在“托管”堆中。JVM是从native内存创建堆栈还是为堆栈预先分配一部分托管内存区域?如果是这样,JVM如何知道线程将如何创建? 最佳答案 Javaspeci

java - 如何使用 JMX 连接到 localhost jvm 上的 java 程序?

我应该使用JMX连接到本地jvm上的java程序。换句话说,我想开发一个JMX客户端来在localhost上配置一个java程序。不推荐使用JConsole!JConsole不适合,因为它是通用的JMX客户端,对主程序性能有负面影响。oracle站点上的示例使用RMIConnector和host:port参数,但我不知道:应该在哪里设置jmx端口?JConsole可以选择通过PID连接到java进程。但是我在JMXapi中没有找到任何以PID作为输入参数的方法。 最佳答案 我们使用类似以下的方式以编程方式连接到我们的JMX服务器。您