Большинство полезных или интересных новых функций языка в Java 5 и 6?

Я просматривал учебное руководство по коду сейчас и нашел что-то интересным - 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.

5
задан Alconja 4 March 2010 в 05:29
поделиться

4 ответа

В Java 5 было много синтаксических изменений: наиболее значительными (насколько я помню) являются:

  • Универсальные шаблоны
  • Перечисления
  • Для каждого цикла
  • Автоматическая упаковка и автоматическая распаковка
  • Ковариант возвращает
  • Функции с переменным числом

(И, конечно же, как отмечено в вопросе, статический импорт и аннотации).

] Как упоминалось в ответе Zwei, java.util.concurrent также является основной функцией Java 5, а также JSR-133 и изменения его модели памяти (что позволило volatile работать в разумный способ, поэтому вы можете безопасно реализовать блокировку с двойной проверкой, если хотите).

В Java 6 не было изменений синтаксиса (насколько я помню); многие из его значительных изменений были связаны с производительностью . С точки зрения библиотеки, моей любимой библиотекой "для новичков в Java 6" была поддержка сценариев ( javax.script ).

9
ответ дан 18 December 2019 в 08:27
поделиться

Совершенно верно, java.util.concurrent !!!

В Java6 ConcurrentSkipListMap был добавлен в качестве новой структуры данных в этот пакет, и это практически спасло наш проект :)

4
ответ дан 18 December 2019 в 08:27
поделиться

К списку Криса Джестера-Янга добавьте

  • varargs
  • аннотации

Но чего я действительно жду, так это конструкций функционального программирования.

3
ответ дан 18 December 2019 в 08:27
поделиться

Я скажу следующее: Поддержка апплетов 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 .

3
ответ дан 18 December 2019 в 08:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: