gpt4 book ai didi

java - JVM 有 JSR-335 特殊支持吗?提升基于 JVM 的函数式语言?

转载 作者:行者123 更新时间:2023-11-30 06:30:51 25 4
gpt4 key购买 nike

JSR-335 据说很快就会与 Java 8 一起出现。它带来了对闭包和虚拟扩展方法的支持。我想知道在 JVM 级别上是否对此有任何特殊支持?如果是这样,我们能否希望基于 JVM 的函数式语言提高速度,这些函数式语言提供闭包和类似扩展方法的特性(例如 scala 中的特征或隐式)?

编辑:读书this oracle presentation on Java 8 Brian Goetz 认为: - 闭包不需要 - 虚拟扩展方法确实需要特定的 JVM 支持。

这是否意味着在 Scala 中,一些隐式和特征可以以更有效的方式重新实现?

最佳答案

我不认为扩展方法可以用来实现特征——方法实现不能在它们上调用 super(afaik——我可能是错的),覆盖语义会与众不同。此外,它不会涵盖字段,仅涵盖方法。

JVM 无法帮助解决隐式问题,因为它们本身没有问题。它们是作为普通参数传递的普通实例。查找它们会使编译器变慢,但 JVM 对此也无能为力。

我没有看到这些特性中的任何一个对 Scala 有任何帮助,但实际上这几乎没有实际意义。 Scala 仍然使用 JVM 1.5 类文件生成 JVM 1.5 字节码。您可以打开 JVM 1.6 字节码,这没什么区别。在 Scala 2.10 中,将启用 1.6 类文件实验性的

原因很简单:Java 1.7 运行 1.5 个类文件和 1.5 个字节码,反之则不然。仍然有很多人在运行旧版本的 Java,而且这种情况不太可能改变。

所以我没有在雷达中看到任何 Java 1.8 功能,除非它们带来巨大的优势。而且,即便如此,它们很可能可用于使用 Scala 编译的代码,但不能用于 Scala 库本身。同样,除非它带来巨大优势,否则我看不到两个版本都提供库。

关于java - JVM 有 JSR-335 特殊支持吗?提升基于 JVM 的函数式语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10107987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com