Еще несколько бета-версий JDK 1.2 - и продукт приобретет необходимую завершенность, однако уже сейчас стоит испробовать его новые возможности.

Отделение JavaSoft компании Sun приурочило дебют первой общедоступной бета-версии JDK 1.2 к осенней выставке Internet World. Тогда же она попыталась внести ясность во все усложняющийся график выпуска отдельных Java-продуктов. Очевидно, что для отработки новых возможностей, которые несет JDK 1.2, потребуется выпустить хотя бы одну дополнительную бета-версию продукта, а возможно, и несколько.

В первом квартале 1998 г. Sun планирует доработать бета-версию JDK с учетом обнаруженных ранее недостатков, а также пожеланий разработчиков. Появление окончательной версии ожидается во втором квартале.

Если в первых выпусках документации и отзывах эта версия именовалась как JDK 1.2, то в пресс-релизах JavaSoft, посвященных новому JDK (см. "Источники") название JDK 1.2 не употребляется. Вероятно, это свидетельствует о внутренних дискуссиях по поводу технической обоснованности и маркетинговой целесообразности переименования продукта в JDK 2.0.

В связи с появлением большого числа не зависящих от JDK новых Java-технологий возникла необходимость обнародовать график выпуска продуктов. Наряду с первой общедоступной бета-версией JDK 1.2 компания Sun выпускает:

  • JDK 1.1.5 (вариант JDK 1.1 с повышенной производительностью)
  • Первую общедоступную версию спецификации Enterprise JavaBeans
  • Окончательную версию GUI-компонентов (Swing) JFC для JDK 1.1
  • Первую предварительную версию Java Activator

    Более подробную информацию о выпуске этих продуктов можно найти в документах, перечисленных в разделе "Источники".

    В приводимой таблице показано, какие продукты можно ожидать от Sun во втором квартале 1998 года.

    График выпуска Java-технологий

    Дата Технология
    Декабрь 1997 Первая общедоступная бета-версия JDK 1.2
    JDK 1.1.5 (вариант с повышенной производительностью)
    JFC 1.1 (окончательная версия компонентов Swing)
    Общедоступные спецификации Enterprise JavaBeans
    Первая предварительная версия Java Activator
    Первый квартал 1998 Вторая общедоступная бета-версия JDK 1.2
    JDK 1.1.6 (дальнейшее повышение производительности)
    Первая версия JVM HotSpot
    Окончательный вариант спецификаций Enterprise JavaBeans
    Вторая предварительная версия Java Activator
    Окончательная версия Java Activator 1.1 (конец первого квартала)
    Общедоступные спецификации Java Messaging Service (JMS)
    Общедоступные спецификации Java Management API (JMAPI)
    Окончательный вариант спецификаций Java Naming and Directory Interface (JNDI)
    Второй квартал 1998 Окончательный вариант JDK 1.2 (поставка - через Java Porting & Tuning Center)
    Окончательный вариант JFC, входящий в ядро Java
    Внедряемый вариант JVM HotSpot
    Предварительная версия Java Activator 1.2
    Окончательный вариант спецификаций Java Messaging Service (JMS)
    Окончательный вариант спецификаций Java Transaction Service (JTS)
    Окончательный вариант спецификаций Java Management API (JMAPI)
    Окончательный вариант JVM HotSpot (лето, возможно, третий квартал)

    Любой разработчик может загрузить с Web-узла JavaSoft программное обеспечение JDK 1.2 и соответствующую документацию, зарегистрировавшись с помощью Java Developer Connection - бесплатной службы, предоставляющей доступ к предварительным выпускам программного обеспечения, к информации, пересылаемой по электронной почте, и к интерактивным дискуссионным группам.

    Новые возможности: продвижение вперед

    JDK 1.2 - это значительный шаг на пути совершенствования Java. Он обеспечивает около дюжины абсолютно новых областей применения и усовершенствование десятка имевшихся ранее возможностей. Первая общедоступная бета-версия еще не обладает всеми этими новшествами, поэтому необходимо подождать следующих выпусков.

    Новые возможности, которые должны быть включены в JDK 1.2:

  • Базовые классы Java (JFC) (GUI-компоненты, или Swing, функции доступности, drag-and-drop и Java 2D)
  • Стандартная архитектура расширений и расширение Servlet
  • Коллекции
  • Методы ввода
  • Идентификация версии
  • Квазиссылки (слабые ссылки)
  • Язык описания интерфейса Java (Interface Definition Language - IDL)
  • Шаблоны Javadoc

    Существенную модернизацию претерпели:

  • JavaBeans
  • Модель безопасности Java
  • Удаленный вызов методов (Remote Method Invocation - RMI)
  • Преобразование объектов в последовательность байтов (Object Serialization)
  • Java Sound
  • Формат архивного файла (Java Archive - JAR)
  • Java Native Interface - JNI

    Некоторые улучшения производительности:

  • "Родная" поддержка потоков для Solaris
  • Сжатие в памяти загруженных классов
  • Ускорение распределения памяти и "сбора мусора"
  • Ускорение работы с монитором
  • Перенос "родной" библиотеки JNI

    В данную бета-версию не включены или не полностью включены следующие возможности:

  • Архитектура стандартных расширений (Standard Extensions Architecture)
  • Стандартное расширение Java Servlet
  • Input Method Framework
  • Усовершенствования JAR
  • Часть функций drag-and-drop и Java 2D
  • JIT-компилятор для Win32

    Повышение производительности

    Йон Каннегард, вице-президент JavaSoft по программным продуктам, считает, что при условии использования JVM-технологии HotSpot производительность JDK 1.2 может возрасти до уровня, сопоставимого с программами на С++. Новый JDK обеспечивает двоичную базу для будущей JVM HotSpot, которую можно будет загрузить с Web-узла Sun в первом квартале.

    Повышение производительности JDK 1.2 обусловлено внесением ряда изменений в его архитектуру.

    Ускорение распределения памяти и "сбора мусора" (garbage collection). Это достигается за счет использования поточно-локального динамического кэша, избавляющего от необходимости блокировать большинство областей динамически распределяемой памяти. Скорость распределения памяти значительно возросла, сократились и задержки при "сборе мусора". За счет совместного использования различными классами строковых констант уменьшился объем потребляемой памяти.

    Собственные (native) библиотеки. Собственные библиотеки, поддерживающие базовые классы Java, такие как AWT, были переписаны с использованием Java Native Interface (JNI). Это более эффективный код, который можно без изменений запускать на различных виртуальных машинах Java.

    "Родная" поддержка потоков для Solaris. За счет нее ядро ОС может лучше распределять потоки между параллельными процессорами там, где это возможно. Виртуальная машина (VM) "родных" потоков лучше интегрируется с "родным" кодом, чем используемая по умолчанию VM, и в ряде случаев способна предотвратить неэффективное переназначение обращений к системе ввода/вывода.

    Совет напоследок

    Данная версия JDK показывает разработчикам, каким путем идет Sun, развивая Java. Обобщая приведенные выше факты, можно сделать вывод, что JavaSoft двигает Java в направлении повышения производительности, ускорения создания и развертывания приложений (за счет поддержки "родных" библиотек и процессов, стандартизации архитектуры расширений, поддержки компонентов JavaBeans, а также улучшенного механизма сжатия памяти для загруженных классов).

    Однако разработчикам необходимо учесть, что предварительная версия JDK 1.2 будет работать намного медленнее более поздних версий. Но, как показывает опыт работы с JDK 1.1, несколько итераций повышения производительности могут принести хороший результат.


    Источники

  • Информация о JDK от JavaSoft
    http://www.javasoft.com/pr/1997/dec/pr971210-04.html
  • Информация о спецификации Enterprise JavaBeans
    http://www.javasoft.com/pr/1997/dec/pr971210-01.html
  • Информация о Java Activator
    http://java.sun.com/features/1997/dec/activator.html
  • Sun's Java Developer Connection - бесплатный ресурс для разработчиков, пишущих на Java
    http://java.sun.com/jdc


    Гордон Спенсер - технический писатель и аналитик, около десяти лет освещающий темы открытых систем и сетевых технологий. С ним можно связаться по электронной почте: gordon.spencer@javaworld.com.