草庐IT

jvm-languages

全部标签

java - 为什么 Java 开发人员应该学习一门额外的 JVM 语言?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭3年前。Improvethisquestion我是一名Java开发人员,我想知道,学习Scala或Groovy等语言的主要好处是什么?

EE6405-Natural Language Processing Week 1(LEC)

WhatisNLP?NLPrepresentsafacetofartificialintelligencefocussedonexamining,comprehending,andproducinghumanlanguagesastheyarenaturallyspokenandwritten.NLP代表了人工智能的一个方面,专注于检查、理解和生成人类自然说话和书写的语言。Whydoweneedthem?NOISEREDUCTIONRemovespecialcharacters,punctuation,andirrelevantinformationtocleanthedata.去除特殊字符、

Java,Object.hashCode() 结果在所有 JVM/系统中都是常量?

对于同一对象,Object.hashCode()的输出是否需要在所有JVM实现上都相同?例如,如果"test".hashCode()在1.4上返回1,它是否可能在1.6上返回2。或者如果操作系统不同,或者实例之间的处理器架构不同怎么办? 最佳答案 没有。hashCode的输出可能会在JVM实现之间发生变化,甚至在同一JVM上程序的不同执行之间。但是,在你给出的具体例子中,"test".hashCode()的值将实际上是一致的,因为hashCode的实现对于Stringobjects是String的API的一部分(参见theJavad

java - 当同一程序在 JVM5 和 JVM6 中运行时,HashMap 中的项目顺序不同

我有一个应用程序,它按行显示一组对象,一个对象=一行。对象存储在HashMap中。行的顺序不会影响应用程序的功能(这就是为什么使用HashMap而不是可排序集合的原因)。但是我注意到,当使用两个不同版本的Java虚拟机运行时,同一个应用程序的运行方式不同。该应用程序使用JDK5编译,可以使用Java5或Java6运行时运行,没有任何功能差异。有问题的对象覆盖java.lang.Object#hashCode()并且显然已经注意遵循JavaAPI中指定的契约(Contract)。它们在应用程序的每次运行中(在相同的Java运行时中)总是以相同的顺序出现这一事实证明了这一点。出于好奇,为什

java - 添加默认包导入

在Java、Scala或一般的任何JVM语言中,有一组默认导入的包。例如,Java会自动导入java.lang,您无需在Java代码文件中执行此操作。现在我不知道哪个组件负责这个(编译器?JVM?),但是有什么方法可以默认导入额外的包甚至类吗?假设您有一个包,定义了您在整个项目中使用的一组实用函数(示例可以是Scala中的scala.math),如果您能够跳过导入,那就太好了在每个与数学相关的类(class)中。 最佳答案 从2.8开始,Scala具有包对象,其内容会自动导入到包的每个文件中。在包的顶层目录(例如,x/y/z/myp

java - Jvm JIT 和 Hotspot - 有什么区别

我听说过这些术语的使用,但我似乎找不到关于它们在Java框架中的整体位置的顶级View。我知道JIT是一种编译机制,但它是JVM的一部分吗?什么是热点?它是某种新型虚拟机吗? 最佳答案 JIT是“即时”编译,基本上是即时编译。Hotspot是JVM中的概念,它只编译实际使用的代码。也就是说,“热”代码被反复使用。JVM跟踪使用情况,当某些东西变得足够流行时,它会将代码排队等待编译,同时继续解释代码。当JIT完成时,它用编译位交换解释位。这就是JVM需要为基准测试等“预热”的原因。Sun/OracleJVM的-server和-clie

java - 用于优化循环语句的 JVM 选项

我在学校被告知,修改for循环的索引变量是一种不好的做法:示例:for(inti=0;i争论的焦点是一些编译器优化可以优化循环,而不是在每个循环中重新计算索引和边界。我在java中做了一些测试,似乎默认情况下每次都会重新计算索引和边界。我想知道是否可以在JVMHotSpot中激活这种功能?例如优化这种循环:for(inti=0;i无需编写:intlength=foo.getLength()for(inti=0;i这只是一个例子,我很想尝试看看改进。编辑根据PeterLawrey的回答为什么在这个简单的例子中JVM不内联getLength()方法?:publicstaticvoidmai

java - 获取给定 JVM 实例中所有当前加载的类的列表

了解给定的JVM实例当前加载了哪些类会很方便。例如,有什么方法可以让它们通过JVisualVM吗?编辑:我知道@Java-GetalistofallClassesloadedintheJVM给出的解决方案,但我想知道是否有办法通过JVisualVM或其他工具来做到这一点。目前我正在处理一个RCP应用程序,我宁愿不必通过java工具运行该应用程序(我很懒,是的)。 最佳答案 你试过jconsole了吗?Jconsole应该能够显示加载类的列表,参见jConsoleDocumentation.查看查看概览信息部分,屏幕截图显示加载类的数

java - 为什么 JMX 报告的 JVM 堆使用最大值会随时间变化?

我的JVM堆最大值在我的一个hadoop集群的名称节点上配置为8GB。当我使用JMX监视该JVM时,报告的最大值不断波动,如附图所示。http://highlycaffeinated.com/assets/images/heapmax.png我只在一个(最活跃的)hadoop集群上看到这种行为。在其他集群上,报告的最大值保持固定在配置值。知道为什么报告的最大值会发生变化吗?更新:java版本是“1.6.0_20”堆最大值在hadoop-env.sh中使用以下行设置:exportHADOOP_NAMENODE_OPTS="-Xmx8G-Dcom.sun.management.jmxrem

java - 长时间运行的进程出现奇怪的 JVM 崩溃 - 可能是 JVM 错误

我们已经使用JavaFX为Mac构建了一个应用程序,并将其分发给了客户。但过了几天,客户开始报告一个奇怪的行为:应用程序突然退出。我们尝试重现该问题,但未能重现。昨天晚上,我让应用程序过夜,今天早上,我可以复制它。JVM崩溃了,我有它的报告。我不明白的是,对于纯Java应用程序来说,出现这样的错误是极不可能的。有人可以帮忙吗?没有JNI或任何东西,一个纯JavaFX应用程序。必要信息:Process:MyApp[929]Path:/Applications/MyApp.app/Contents/MacOS/MyAppIdentifier:unknown.com.bl.MainVersi