Tag: jvm

在Scala中def foo = {}和def foo()= {}有什么区别?

鉴于在Scala中定义一个函数的下列结构,你能解释一下这个区别是什么,它的含义是什么? def foo = {} 与 def foo() = {} 更新 感谢您的快速回复。 这些都很棒。 我唯一的问题是: 如果我省略括号,是否还有一种方法来传递函数呢? 这是我得到的repl: scala> def foo = {} foo: Unit scala> def baz() = {} baz: ()Unit scala> def test(arg: () => Unit) = { arg } test: (arg: () => Unit)() => Unit scala> test(foo) <console>:10: error: type mismatch; found : […]

为什么使用invokedynamic调用Java 8 lambdas?

invokedynamic指令用于帮助VM在运行时确定方法引用,而不是在编译时硬连线。 这在dynamic语言中非常有用,在运行时,确切的方法和参数types是不知道的。 但是Java lambda不是这种情况。 它们被翻译成具有明确定义的参数的静态方法。 而且这个方法可以使用invokestatic来调用。 那么对lambdaexpression式invokedynamic的需求是什么,特别是当性能受到影响的时候呢?

什么是Java写入?

Sun的JVM什么语言编写的?

Eclipse:停止运行代码(java)

有时候,我会运行一个程序,意外地包含一个无限循环或什么的。 Eclipse会让我继续编辑程序,但会超慢。 我怎么能阻止它? (我想重新启动JVM吗?)重新启动eclipse本身总是可以工作的,但这打破了我的工作stream程。

可视VM – 线程状态

有人可以解释一下Visual VM中Sleeping , Wait , Park和Monitor线程状态的区别。 这是我发现的: Running :线程仍在运行。 Sleeping :线程正在hibernate(方法yield()被调用的线程对象) Wait :线程被互斥锁或屏障阻塞,正在等待另一个线程释放锁 Park :暂停线程暂停,直到他们获得许可证。 取消一个线程通常是通过调用线程对象的方法unpark()完成的 Monitor :线程正在等待条件成为真,恢复执行 我无法理解的是国家公园,究竟是什么挂了线? 如何在代码中检测线程暂停执行的内容? 有人可以在这方面指导我。 谢谢。

提高性能一致性的方法

在以下示例中,一个线程正在通过消费者正在使用的ByteBuffer发送“消息”。 最好的performance是非常好的,但不一致。 public class Main { public static void main(String… args) throws IOException { for (int i = 0; i < 10; i++) doTest(); } public static void doTest() { final ByteBuffer writeBuffer = ByteBuffer.allocateDirect(64 * 1024); final ByteBuffer readBuffer = writeBuffer.slice(); final AtomicInteger readCount = new PaddedAtomicInteger(); final AtomicInteger writeCount = new PaddedAtomicInteger(); for(int […]

非服务器级机器上的Xmx,Xms,MaxPermSize的默认值

在非服务器级别的机器上,Java 6中下列选项的默认值是什么? -Xmx -XX:MaxPermSize参数 Oracle的文档指出: 在运行服务器虚拟机的服务器级机器上,垃圾收集器(GC)已经从前一个串行收集器(-XX:+ UseSerialGC)更改为并行收集器(-XX:+ UseParallelGC)。 和 在运行具有并行垃圾回收器(-XX:+ UseParallelGC)的VM(客户端或服务器)的服务器级机器上,初始堆大小和最大堆大小已经更改 该页面没有描述非服务器级机器的默认值,只是例如初始堆大小是“合理的最小值”。 查看java命令的“man page” ,对于-Xms有以下几点: 默认值是在运行时根据系统configurationselect的

find哪种types的垃圾收集器正在运行

发布JSE 5人机工程学旨在自动为您select合适的垃圾收集器types(除其他外)。 我想知道是否有任何方法来确认/了解垃圾收集器的types和JVM人体工程学select/目前设置的性能目标。

为什么Clojure将Clojure命名为Clojure

为什么这个语言的名字是“Clojure”? 我search了一下,在#cljjure问。 到目前为止,没有运气。

为什么Sun不把C#转换成Java字节码编译器?

我们希望在JVM上运行我们的C#代码 我的公司有一个大的C#代码库。 超过一半的代码是我们创build,阅读,修改,计算和编写Excel工作簿的核心引擎。 我们经常从客户和潜在客户那里获得问题,询问我们是否打算构build我们的引擎的Java版本 – 他们中的许多人对UI并不感兴趣。 我们甚至有一些客户在Java应用程序中使用我们的.NET库。 因此,我们希望构build一个Java版本的核心引擎,理想情况下不需要维护单独的Java源代码库。 Eric Sink很好地描述了这个问题 。 除了我们的软件许可证包含免版税的部署之外,我处于类似的位置,因此Ericselect了Mainsoft作为我们的首选。 我几个月来一直在使用“c#to jvm”这样的喜欢,好几年没有快乐。 花了大约7年的时间为Java开发类似的软件,我相信我们在核心引擎中使用的.NET API可以很容易地被封装起来,我们可以使用Java库完成我们需要的一切。 所以,如果我们只有一个C# – > JVM编译器,我们可以构build我们的Java核心引擎,我们将不再需要拒绝那些愿意使用它的Java开发人员。 我不是要求Sun为什么不做C#编译器的技术原因。 我认识到,Java没有任何属性或无符号64位长等等。为了争辩,只是假设所有这些技术问题都可以通过扩展JVM和/或其他方式来处理。 而且,我并不是要求为什么一种语言/堆栈可能比另一种更好。 我们业务的现实是有很多潜在的客户使用他们。 Sun为什么要做C#编译器? (国际海事组织当然) 在Java平台上运行C#代码更容易,这意味着更多的开发人员和更多的平台软件。 有什么更重要的平台的成功? 乔纳森·施瓦茨是一个软件家伙。 我会把它交给别人比我聪明,以决定他是否担任了Sun公司的总裁兼首席执行官,但是他在joinSun之后不久就遇到了Jonathan,我的印象是,他了解软件,需要一个大的开发商的基地。 那么为什么Sun不用C#编译器? NIH综合征? 斯科特·麦克尼利的鬼魂? 太多的Java开发人员不喜欢或不相信与微软有关的任何东西? 他们同意不作为大钱的一部分 ? ??? 一定有一个很好的理由。 我只是不能为我的生活弄清楚它是什么…