Самые полезные или интересные новые языковые функции в Java 5 и 6? - PullRequest
5 голосов
/ 04 марта 2010

Я только что просматривал учебник по коду и обнаружил кое-что интересное - функция 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, о которых я не знаю? Есть ли другие новые ключевые слова, как это? Любые заслуживающие внимания новые классы или функции библиотеки?

Я знаю, что есть заметки о выпуске или журналы изменений, я не ищу ответ "RTFM". Я хочу знать краткий список, по вашему мнению, функций, которые, по вашему мнению, больше всего меняют игру в JDK 5 или 6.

Ответы [ 5 ]

9 голосов
/ 04 марта 2010

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

  • Дженерики
  • Перечисления
  • Для каждого цикла
  • Автобокс и автоматическая распаковка
  • Ковариантный возврат
  • Вариативные функции

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

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

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

4 голосов
/ 04 марта 2010

Абсолютно, java.util.concurrent !!!

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

3 голосов
/ 04 марта 2010

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

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

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

3 голосов
/ 04 марта 2010

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

0 голосов
/ 04 апреля 2013

Вы можете изучить новые функции, представленные в Java 5, с хорошими примерами здесь Java 5 (J2SE 5.0 / JDK 1.5) Новые функции с примерами

...