我刚才正在查看代码教程,并发现了一些有趣的东西 - 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中哪些功能最具游戏规则。
答案 0 :(得分:9)
Java 5有一个很多的语法变化:最重要的(我记得):
(当然,如问题中所述,静态导入和注释。)
正如Zwei的回答所提到的那样,java.util.concurrent
也是一个主要的Java 5特性,同时,JSR-133及其内存模型也发生了变化(允许volatile
以合理的方式工作,所以你可以如果你想安全地实施双重检查锁定。
Java 6没有任何语法更改(我记得);它的许多影响很大的变化是performance-related。在图书馆方面,我最喜欢的“Java 6新手”库是脚本支持(javax.script
)。
答案 1 :(得分:4)
当然,java.util.concurrent !!!
在Java6中,ConcurrentSkipListMap被添加为此包的新数据结构,它实际上保存了我们的项目:)
答案 2 :(得分:3)
我将继续推出一个: Java Web Start小程序支持。
我喜欢和JOGL一起玩,能够只使用一个简短的jnlp文件并且不必编写类加载器,下载本机库代码的代码等来处理JOGL以获得JOGL是非常好的。浏览器。 (是的,我知道JOGL的appletloader事情)
我的JNLP文件的一行行加载JOGL jar,其依赖项(gluegen,nativewindow,newt)以及当前系统的相应本机库。
<extension name="JOGL"
href="http://download.java.net/media/jogl/builds/archive/jsr-231-2.0-beta10/webstart/jogl-all-awt.jnlp" />
我的jnlp文件的其余部分仅用于我的应用程序的标题及其JAR文件的URL,就是它。
顺便说一句,这是在JDK 6u10中引入的。
答案 3 :(得分:3)
答案 4 :(得分:0)
您可以在这里学习Java 5中引入的新功能Java 5 (J2SE 5.0/JDK 1.5) New Features with Examples