Java 5和6中最有用或最有趣的新语言功能?

Ric*_*ket 5 java language-features jdk1.6 jdk1.5

我刚才正在查看代码教程,并发现了一些有趣的东西 - import staticJDK 5中引入的功能:

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 */
  }

}
Run Code Online (Sandbox Code Playgroud)

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

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

Chr*_*ung 9

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

  • 泛型
  • 枚举
  • 为每个循环
  • 自动装箱和自动拆箱
  • 协变回报
  • 变量函数

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

正如Zwei的回答所提到的,它java.util.concurrent也是一个主要的Java 5功能,而且,JSR-133及其内存模型也发生了变化(允许volatile以理智的方式工作,因此如果您愿意,可以安全地实现双重检查锁定).

Java 6没有任何语法更改(我记得); 许多影响深远的变化都与绩效有关.在图书馆方面,我最喜欢的"Java 6新手"库是脚本支持(javax.script).

  • (和varargs ......) (2认同)
  • @Annotations也是 (2认同)