Я просматривал учебное руководство по коду сейчас и нашел что-то интересным - import static
функция представила в JDK 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 */
}
}
Это получило меня удивление, что другие функции были представлены в JDK 5 и 6, что я не знаю о? Есть ли другие новые использования ключевого слова как это? Какие-либо примечательные новые классы библиотеки или функции?
Я знаю, что информация о версии или журналы изменений там, я не ищу "прочитайте руководство" ответ. Я хочу знать короткий список по Вашему мнению, какие функции, Вы думаете, являются самыми меняющими правила игры в JDK 5 или 6.
В Java 5 было много синтаксических изменений: наиболее значительными (насколько я помню) являются:
(И, конечно же, как отмечено в вопросе, статический импорт и аннотации).
] Как упоминалось в ответе Zwei, java.util.concurrent
также является основной функцией Java 5, а также JSR-133 и изменения его модели памяти (что позволило volatile
работать в разумный способ, поэтому вы можете безопасно реализовать блокировку с двойной проверкой, если хотите).
В Java 6 не было изменений синтаксиса (насколько я помню); многие из его значительных изменений были связаны с производительностью . С точки зрения библиотеки, моей любимой библиотекой "для новичков в Java 6" была поддержка сценариев ( javax.script
).
Совершенно верно, java.util.concurrent !!!
В Java6 ConcurrentSkipListMap был добавлен в качестве новой структуры данных в этот пакет, и это практически спасло наш проект :)
К списку Криса Джестера-Янга добавьте
Но чего я действительно жду, так это конструкций функционального программирования.
Я скажу следующее: Поддержка апплетов Java Web Start .
Мне нравится экспериментировать с JOGL , и это так приятно иметь возможность просто использовать короткий файл jnlp и не писать загрузчики классов, код для загрузки кода собственной библиотеки и т. Д., Чтобы справиться с получением JOGL через браузер. (да, я знаю о загрузчике апплетов JOGL)
Просто одна строка моего файла JNLP загружает JOGL-файлы, их зависимости (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 предназначена только для заголовка моего приложения и URL-адреса его файла JAR, и на этом все.
Кстати, это было введено в JDK 6u10 .