WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Архив » Платформа Java 2, часть 2

Платформа Java 2, часть 2


Дата публикации: 17-03-2013

Networking Enhancements
Появилась возможность использовать TCP полузакрытые сокеты. Добавлены методы shutdownInput() и shutdownOutput() в классы java.net.Socket и java.net.SocketImpl
Сокерты Java теперь поддерживают опцию keepalive совместно с методами setKeepAlive(boolean on) и boolean getKeepAlive() в классе java.net.Socket.
Добавлен новый интерфейс java.net.DatagramSocketImplFactory, используемый DatagramSocket-ом для создания сокетной реализации. С этим добавлением DatagramSocket стал совместим с другими сокетными типами.
Повышена гибкость системы путем внесения изменений в java.net.URL, java.net.URLConnection и java.net.ContentHandler. Парсинг URL теперь происходит лучше, согласно правилам определенным в RFC 2396. Было так же добавлено несколько новых методов для обеспечения вышеизложенного.
Добавлена поддержка клиентского HTTP 1.1.

Reflection Enhancements
Были добавлены новые API для работы с динамическими прокси. Класс динамического прокси это класс реализующий набор интерфейсов определяемых во время работы, так же, как и вызовы методов, через один из интерфейсов к экземпляру класса. Они должны быть закодированы и переданы другому объекту, через универсальный интерфейс. Поэтому, класс динамического прокси может быть использован для создания прокси с безопасными типами, для набора интерфейсов без необходимости предварительно генерации классов прокси, как это делалось на стадии компиляции. Классы динамических прокси удобны в приложениях, нуждающихся в предоставлении типо-безопасных рефлексий вызовов объектов определенных API. К примеру, приложение может использовать класс динамического прокси для создания объекта, реализующего множественных случайных слушателей событий, через интерфейсы расширяющие java.util.EventListener, для обработки различных событий в универсальном виде, как например, протоколирование событий в файл.

Object Serialization
В версии 1.3 было произведено множество расширений и улучшений функциональности сериализации и повышения производительности.
Строки длиннее 64K теперь сериализируются.
Производительность при записи во время сериализации и чтение при десереализации повышена на 20 процентов.
Улучшен вывод сообщений об исключениях. Раньше класс или интерфейс вызвавший исключение был неизвестен, выдавалась ссылка на родительский. Теперь выдается ссылка именно на него.
Новые методы:
· java.io.ObjectOutputStream.writeClassDescriptor
· java.io.ObjectOutputStream.annotateProxyClass
· java.io.ObjectInputStream.readClassDescriptor
· java.io.ObjectInputStream.resolveProxyClass

Accessibility
Было добавлено несколько новых классов и интерфейсов к API доступа Java 2.
· AccessibleIcon предоставляет информацию о пиктограммах и реализуется пиктограммами Swing.
· AccessibleRelation и AccessibleRelationSet предоставляют информацию о тех путях, коими объекты пользовательского интерфейса могут ссылаться друг на друга.
· AccessibleTable предоставляет информацию о таблицах и реализуется классом JTable.AccessibleJTable.
· AccessibleTableModelChange - вспомогательный класс инкапсулирующий изменения в модель таблицы.
Поддержка доступа была добавлена и в AWT Component и в AWT Container, отсюда создание частного компонента с функциями доступа будет производить легче, чем раньше. Это в свою очередь означает, что такие функции доступны не только компонентам Swing, но и всем легковесным компонентам AWT.
Класс java.applet.Applet теперь реализует интерфейс Accessible.
Новый класс AWT Robot предоставляет возможность внедрять строки и события мыши на системном уровне. Эта возможность расширяет возможности доступа, поскольку при ее помощи можно перемещать курсор мыши по экрану (физически). При этом нативное программное обеспечение могут его распознавать и отвечать на движения манипулятора, до этого они не понимали, что курсор перемещается.

Input Method Framework
Input Method Engine Service Provider Interface (интерфейс провайдера сервиса движка метода ввода) был добавлен к платформе. Новый SPI позволяет разрабатывать движки методов ввода на языке Java, которые могут быть использованы с любым окружением Java.
Реализован метод ввода текста Below-the-spot. Метод ввода Below-the-spot популярен в китайского говорящих странах, и использует отдельные соединенные окна, позиционирующиеся автоматически в точке, где вводится текст.

Collections Framework Enhancements
Добавлены singletonList и singletonMap. До этого, уже была удобная реализация для единственного набора, но не было корреспондирующей реализации для List и Map. Они обе должны облегчить использование коллекций.
Добавлен EMPTY_MAP. До этого, была реализация для пустых Set и List, но не было корреспондирующей реализации для Map.
Добавлен конструктор Map для WeakHashMap. Интерфейс Map требует, что бы реализации Map имели копируемый конструктор.

Enhancements to java.math
Расширен конструктор BigDecimal(String), теперь он воспринимает знаковые строки (к примеру, "+2.71828") и экспоненциальную нотацию (например, "1.23E-23").
Класс java.math.BigInteger переделан на чистом языке Java. До этого, он базировался на библиотеке C. Новая реализация осуществляет все операции быстрее, чем предыдущая. Повышение скорости в новой реализации не меньше 5-и раз, в зависимости от операции и размера операнда.

Enhancements in java.lang and java.util.*
Пакет java.lang теперь содержит класс Math и класс StrictMath. Новый класс StrictMath имеет то же API, что и класс Math, но он возвращает результаты в виде бит-за-битом для числовых операций во всех реализациях. Он создан, как альтернатива классу Math, который возвращает результаты в виде бит-за-битом в зависимости от реализации.
Новый Timer API hбыл добавлен к платформе Java 2, для поддержки анимации, таймаутов человеческой реакции, экранных часов и календарей, откладываемых процедур, различных напоминателей и т.д. :
· java.util.Timer
· java.util.TimerTask
Примером работы является Countdown.java и поставляется совместно.
Добавлен API для инициации шатдауна виртуальной машиной в класс java.lang.Runtime. Он реализует простой, переносимый интерфейс для генерации низкоуровнего выключения, когда приложение на Java может инициировать выключение сервисов, таких, как закрытие сетевых соединений, сохранение параметров сессий, удаление временных файлов и т.д.
Добавлен новый режим "delete-on-close" при открытии Zip и Jar архивов. Поэтому для программ, работающих длительно появилась возможность удалять уже не нужные файлы, тем самым сберегая дисковое пространство.

Enhancements to the Extension Mechanism and Jar Files
Автоматическая установка расширений позволяет всегда иметь правильную версию установленного расширения на пользовательской машине. При этом старая версия не будет скачиваться, что позволяет увеличить скорость загрузки аплетов.
Индексирование Jar позволяет разработчикам разбивать функциональность на несколько различных Jar файлов и быть при этом уверенным, что только та часть, которая действительно сейчас нужна загружается пользователю (для аплетов).

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Март 2017 (1)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта

Хотите продать свой сайт?
- Мы быстро и удобно для Вас сможем его купить:
  • Заявка на продажу сайта
  • Раcсматриваем цены на каждый сайт в индивидуальном порядке.

    Случайная цитата

    Rick Cook:

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

    Опрос

    Ваша ОС?

    Windows XP
    Windows 7
    др. версия Windows
    Linux
    др. ОС