Tag: jvm languages

添加默认包导入

在Java,Scala或通常任何JVM语言中,默认情况下会导入一组包。 例如,Java会自动导入java.lang ,您无需在Java代码文件中执行此操作。 现在我不知道哪个组件准确地处理了这个问题(编译器?JVM?),但有没有办法让其他软件包甚至是默认导入的类? 假设你有一个包定义了你在整个项目中使用的一组实用函数(一个例子可能是Scala中的scala.math ),如果你能够在每个数学相关的类中跳过它的导入,那将会很棒。

从JVM发送POSIX信号

如何从JVM中发送POSIX信号? (在Java或Clojure中) 在我尝试使用谷歌搜索之前,我从未想过这会是一个问题 – 有很多关于处理信号的信息,但没有关于发送它们的信息。 如果没有使用JNI或调用shell来执行“kill”,还有其他方法可以向PID发送信号吗?

基于堆栈的机器取决于基于寄存器的机器?

普通CPU(例如,Android设备)是基于寄存器的计算机。 Java虚拟机是基于堆栈的机器。 但基于堆栈的机器是否依赖于基于寄存器的机器才能工作? 不能基于堆栈的机器运行孤独,因为它不是操作系统? 除了JVM之外,还有基于堆栈的机器示例吗? 有人说1个操作数,2个操作数; 你为什么需要这个?

关于程序员/开发人员JVM内部的规范性参考

标题很好地反映了我的问题。 我想知道有关JVM(不仅仅是HotSpot,但显然是开始的地方)如何实现或处理特定function的问题是否有良好的资源或跳跃点? 我不是在寻找JLS或JVM规范中的东西 – 我知道先去那里。 例如 :在尝试理解性能问题时,我们经常会进行对话,而不是关于规范所说的内容,而是实际实现中当代最佳实践的样子。 例如,有一些城市神话说“最终的类在Java中表现更好,因为JVM可以内联或以其他方式优化这些东西。” 是否有一般资源我们可以转向评估这些浮动的声明? 我通过HotSpot特定的参考资料回答了我自己的问题。 其他供应商的产品呢? 小型JVM的细节? 多核细节? 平台细节,如果它们有所作为? 其他JVM语言的细节? 只是为了避免一些潜在的抱怨:1)这不是为了寻找过早的优化(事实上,更好地理解平台应该劝阻受过良好教育的开发人员!); 2)我知道Java程序员应该专注于漂亮,可移植,随处运行的代码,但对于我们中的许多人而言,平台细节最终都很重要! 这得到了ThorbjørnRavnAndersen对一个具体问题的一些有用评论的启发。 我很乐意收集一些其他更有用的例子,超出我上面引用的例子,以激发人们可能想要这些资源的原因。 关于SO的一些有趣的相关问题: JVM中的尾调优化 , Killer JVM特性 , 明天将无用的优化, JVM实现之间的差异 。 编辑添加:我将答案提供给所提及的最佳个人参考, 或者提供指向网站的指针(可能是为了回答这个问题而建立的),最好地集中/编目JVM实施智慧和实际后果。客户语言和开发人员。

生成’Hello,World!’ 使用Java ASM库的类

我已经开始乱用我正在研究的编译器项目的ASM API。 但是,我发现文档对于很多地方的新手来说还不太清楚,我认为有一个很好的例子来生成一个只打印“Hello,World!”的类。 这将是一个很好的例子。 目前,我可以使用main()(使用ClassWriter,ClassVisitor和MethodVisitor类)生成一个类,但我似乎无法弄清楚如何生成main的主体。 任何人都可以给我一个在ASM中生成类文件的示例: 包含一个main() 在main()中创建一个本地String变量,其值为“Hello,World!” 打印变量

java中varargs的最大参数个数是多少?

java中的vararg可以使用的参数个数的最大值是多少? 我相信应该有一些限制而且它不是无限的。

JVM实现之间的差异

JVM实现在哪里不同(许可除外)? 每个JVM是否都为通用处理实现Type Erasure? 两者之间的区别在哪里: JRockit的 IBM JVM SUN JVM 打开JDK blackdown的 kaffe的 …..使用Tail-Call-Optimization处理其中一个?