Краткие объяснения изменений языка Java в основных ревизиях - PullRequest
4 голосов
/ 08 апреля 2009

Я собираюсь снова перейти к разработке Java через несколько лет. Языковая версия, с которой я работал, была 1.4.2. Я знаю, что с тех пор в языке произошли существенные изменения, и я ищу сайт или книгу, в которых они подробно описаны. По крайней мере, я ищу ресурс, который указывает, какие языковые функции были добавлены в какую ревизию, поэтому я могу сразу пропустить разделы, с которыми я уже знаком. Есть предложения?

Ответы [ 6 ]

7 голосов
/ 08 апреля 2009

Запись в Википедии кажется достаточно краткой для того, что вы хотите посмотреть.

Выписка:

J2SE 5.0 (30 сентября 2004 г.)

Кодовое имя Tiger. (Первоначально номер 1.5, который до сих пор используется в качестве внутреннего номера версии.) Разработанный в JSR 176, Tiger добавил ряд значительных новых языковых возможностей:

  • Generics: Обеспечивает безопасность типов во время компиляции (статический) для коллекций и устраняет необходимость в большинстве типов типов (преобразование типов). (Определено JSR 14.)
  • Метаданные: также называются аннотациями; позволяет помечать языковые конструкции, такие как классы и методы, дополнительными данными, которые затем могут обрабатываться утилитами, поддерживающими метаданные. (Определено JSR 175.)
  • Автобокс / распаковка: автоматические преобразования между примитивными типами (такими как int) и примитивными классами-обертками (такими как Integer). (Указано JSR 201.)
  • Перечисления: ключевое слово enum создает типизированный, упорядоченный список значений (например, Day.MONDAY, Day.TUESDAY и т. Д.). Ранее это могло быть достигнуто только с помощью целочисленных значений, не являющихся безопасными типами, или созданных вручную классов (шаблон типа перечисления типов). (Указано JSR 201.)
  • Swing: новый скин-дизайн, называемый синтезатором.
  • Varargs: последний параметр метода теперь может быть объявлен с использованием имени типа, за которым следуют три точки (например, void drawtext (String ... lines)). В вызывающем коде может использоваться любое число параметров этого типа, и они затем помещаются в массив для передачи в метод, или, альтернативно, вызывающий код может передавать массив этого типа.
  • Усовершенствовано для каждого цикла: синтаксис цикла for расширен специальным синтаксисом для итерации по каждому члену массива или любого итерируемого, такого как стандартные классы Collection (определено JSR 201.)
  • Исправьте ранее нарушенную семантику модели памяти Java, которая определяет, как потоки взаимодействуют через память.
  • Автоматическая генерация заглушки для объектов RMI.
  • статический импорт

  • 1.5.0_17 (5u17) - последний выпуск Java, официально поддерживающий линейку Microsoft Windows 9x (Windows 95, Windows 98, Windows ME). 1 Неофициально, Java SE 6 Update 7 (1.6.0.7) является последней версией Java, работающей в этом семействе операционных систем.

  • Утилиты параллелизма в пакете java.util.concurrent.

J2SE 5.0 вступил в силу 8 апреля 2008 года и не будет поддерживаться Sun с 30 октября 2009 года.

Java SE 6 (11 декабря 2006 г.)

Кодовое имя Mustang. Начиная с этой версии Sun заменила имя «J2SE» на Java SE и удалила «.0» из номера версии. Внутренняя нумерация для разработчиков остается 1.6.0. Эта версия была разработана в соответствии с JSR 270.

На этапе разработки новые сборки, включая улучшения и исправления ошибок, выпускались примерно еженедельно. Бета-версии были выпущены в феврале и июне 2006 года, что привело к окончательному выпуску, который произошел 11 декабря 2006 года. Текущая версия - это Обновление 12, выпущенное в феврале 2009 года.

Основные изменения, включенные в эту версию:

  • Поддержка старых версий Win9x прекращена. Неофициально Java 6 Update 7 является последним выпуском Java, показанным для работы с этими версиями Windows. Считается, что это связано с серьезными изменениями в обновлении 10.
  • Поддержка языка сценариев (JSR 223): универсальный API для тесной интеграции с языками сценариев и встроенная интеграция с Mozilla Javascript Rhino
  • Значительное улучшение производительности для базовой платформы [17] [18] и Swing.
  • Улучшенная поддержка веб-службы через JAX-WS (JSR 224)
  • Поддержка JDBC 4.0 (JSR 221).
  • API компилятора Java (JSR 199): API, позволяющий программе на Java программно выбирать и вызывать компилятор Java.
  • Обновление JAXB до версии 2.0: включая интеграцию синтаксического анализатора StAX.
  • Поддержка сменных аннотаций (JSR 269).
  • Множество улучшений графического интерфейса, таких как интеграция SwingWorker в API, сортировка и фильтрация таблиц и двойная буферизация Swing (исключая эффект серой области).

Java SE 6, обновление 10

Java SE 6 Update 10 (ранее известное как Java SE 6 Update N), хотя оно и не изменяет какой-либо общедоступный API, подразумевает значительное улучшение с точки зрения удобства использования для конечного пользователя. Релизная версия в настоящее время доступна для скачивания.

Основные изменения в этом обновлении:

  • Java Deployment Toolkit, набор функций JavaScript для упрощения развертывания апплетов и приложений Java Web Start.
  • Java Kernel, небольшой установщик, включающий только наиболее часто используемые классы JRE. Другие пакеты загружаются при необходимости.
  • Улучшенный модуль обновления.
  • Улучшенная поддержка версий и pack200: поддержка на стороне сервера больше не требуется.
  • Java Quick Starter, для улучшения времени холодного запуска.
  • Улучшена производительность графических примитивов Java2D в Windows с использованием Direct3D и аппаратного ускорения.
  • Новый стиль Swing под названием Nimbus, основанный на синтезаторе. [23]
  • Подключаемый модуль Java следующего поколения: апплеты теперь выполняются в отдельном процессе и поддерживают многие функции приложений Web Start
1 голос
/ 08 апреля 2009

Я был в одной лодке с тобой около года назад и обнаружил, что Java 1.5 Tiger A Notebook для разработчиков очень полезен в качестве ускоренного курса при серьезных изменениях между 1.4 и 1.5. Это даст вам скорость. Затем вы можете использовать веб-сайт Sun или другие ресурсы для более глубокого изучения.

1 голос
/ 08 апреля 2009

Вот список новых функций в Java от Sun 5 .

Их много, и они очень важны.

Для сравнения, я не думаю, что были какие-либо изменения в самом языке в Java 6 вообще.

1 голос
/ 08 апреля 2009

Вы можете проверить веб-сайт Sun. Вы можете найти изменения в Java 5 и Java 6 . Я думаю, что большинство значительных изменений языка произошло в Java 5 с Generics, Autoboxing, Varargs, Enums и т.д.

0 голосов
/ 08 апреля 2009

Основные функции Java 6, без которых я не могу жить, в порядке важности:

  • Обобщения : разрешение языку знать о параметрах типов (типы объектов-членов в коллекциях, контейнерах, фабриках ...)
  • Автобокс : автоматическое преобразование примитивных типов в объекты и наоборот
  • Ковариантное переопределение типа возврата : аналогично полиморфизму, позволяет переопределять методы с более конкретным типом возврата.
0 голосов
/ 08 апреля 2009

Дженерики

Если вы знакомы с C ++, тогда это просто шаблоны для Java.

...