java - Java 5 和 6 中最有用或最有趣的新语言特性?

标签 java language-features java-6 java-5

我刚才在看代码教程,发现了一些有趣的东西——JDK 5 中引入的 import static 特性:

import static org.junit.Assert.assertEquals;

public class AdditionTest {

  private int x = 1;
  private int y = 1;

  @Test public void addition() {
    int z = x + y;
    assertEquals(2, z);
    /* ^ this is a static method, normally called by Assert.assertEquals */
  }

}

这让我想知道,JDK 5 和 6 中还引入了哪些我不知道的其他功能?还有其他像这样的新关键字用法吗?有什么值得注意的新库类或函数吗?

我知道那里有发行说明或变更日志,我不是在寻找“RTFM”答案。我想知道一个简短的列表,在您看来,您认为 JDK 5 或 6 中哪些功能最能改变游戏规则。

最佳答案

Java 5 有很多语法变化:最重要的(我记得)是:

  • 泛型
  • 枚举
  • For-each 循环
  • 自动装箱和自动拆箱
  • 协变返回
  • 可变函数

(当然,如问题中所述,静态导入和注释。)

正如 Zwei 的回答所提到的,java.util.concurrent 也是 Java 5 的一个主要特性,此外,JSR-133 及其内存模型发生了变化(允许 volatile以一种理智的方式工作,这样你就可以安全地实现双重检查锁定)。

Java 6 没有任何语法更改(我记得);它的许多影响很大的变化是performance-related .在库方面,我最喜欢的“Java 6 新功能”库是脚本支持 (javax.script)。

关于java - Java 5 和 6 中最有用或最有趣的新语言特性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2377054/

相关文章:

java - 如何在 Jetty 9.4.x 的 servlet 上下文中动态添加和删除 servlet?

c# - 我需要帮助确定一种编程技术,以便我可以研究和修复它

c# - .NET 的 future 版本是否支持 C# 中的元组?

java - 在不同类的 JTextArea (java) 中加载文本文件

java - 将 Java EE 应用程序升级到 Java 6

java - 是否可以使用 JDK 1.7 或更高版本在没有 main() 的情况下用 Java 编写程序?

java - 您如何处理这种合并数组方法?

java - 无法将代理接收器绑定(bind)到 RMI 注册表

java属性hashmap读取

其他语言中的 VBA With 语句等效项