Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Статьи по Java 
:(
    Опции темы
hkdkest
  Дата 10.1.2010, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 30.11.2008

Репутация: 1
Всего: 1



Статьи Java & JS

Изучение новых функциональных возможностей, включенных в последнюю версию Java 2 5.0, начнем с так долго ожидаемых всеми программистами на языке Java автоупаковки (autoboxing) и автораспаковки (auto-unboxing). Выбор этот сделан по трем причинам. Во-первых, автоупаковка/автораспаковка сильно упрощает и рационализирует исходный код, в котором требуется объектное представление базовых типов языка Java, таких как int или char. Поскольку такие ситуации часто встречаются в текстах программ на Java, выигрыш от применения средств автоупаковки/распаковки получат практически все, программирующие на этом языке. Во-вторых, автоупаковка/автораспаковка во многом способствует простоте и удобству применения другого нового средства — настройки типов (generics). Следовательно, понимание автоупаковки и автораспаковки понадобится для последующего изучения этого механизма. В-третьих, автоупаковка/распаковка плавно изменяет наши представления о взаимосвязи объектов и данных базовых типов. Эти изменения гораздо глубже, чем может показаться на первый взгляд из-за концептуальной простоты двух описываемых здесь новых функциональных возможностей. Их влияние ощущается во всем языке Java.
Автоупаковка и автораспаковка напрямую связаны с оболочками типов (type wrapper) языка Java и со способом вставки значений в экземпляры таких оболочек и извлечения значений из них. По этой причине мы начнем с краткого обзора оболочек типов и процесса упаковки и распаковки значений для них.
Обзор оболочек типов и упаковки значений
Как вам известно, в языке Java используются базовые типы (также называемые простыми), такие как int или double, для хранения элементарных данных типов, поддерживаемых языком. Для хранения таких данных из-за более высокой производительности применяются базовые типы, а не объекты. В этом случае использование объектов добавляет неприемлемые издержки даже к простейшей вычислительной операции. Таким образом, базовые типы не являются частью иерархии объектов и не наследуют класс Object.
Несмотря на выигрыш в производительности, предлагаемый базовыми типами, возникают ситуации, требующие обязательного объектного представления. Например, Вы не можете передать в метод переменную базового типа как параметр по ссылке. Кроме того, много стандартных cтруктур данных, реализованных в языке Java, оперирует объектами, и, следовательно, Вы не можете использовать эти структуры для хранения данных базовых типов. Для подобных (и других) случаев Java предоставляет оболочки типов, представляющие собой классы, которые инкапсулируют данные простого типа в объект. Далее перечислены классы оболочки типов.
• Автоупаковка и автораспаковка - JAVA/JS
• Настраиваемые типы - JAVA/JS
• Настраиваемый класс с двумя параметрами типа - JAVA/JS
• Ограниченные типы - JAVA/JS
• Ограниченные метасимвольные аргументы - JAVA/JS
• Создание настраиваемого метода - JAVA/JS
• Настраиваемые конструкторы - JAVA/JS
• Настраиваемые интерфейсы - JAVA/JS
• Типы raw - JAVA/JS
• Иерархии настраиваемых классов. Использование настраиваемого суперкласса - JAVA/JS
• Настраиваемый подкласс - JAVA/JS
• Сравнения типов настраиваемой иерархии во время выполнения программы - JAVA/JS
• Переопределенные методы в настраиваемом классе - JAVA/JS
• Настраиваемые типы и коллекции - JAVA/JS
• Стирание - JAVA/JS
• Методы-подставки - JAVA/JS
• Ошибки неоднозначности - JAVA/JS
• Некоторые ограничения применения настраиваемых типов - JAVA/JS
• Вариант For-Each цикла for - JAVA/JS
• Обработка многомерных массивов в цикле - JAVA/JS
• Область применения цикла for в стиле for-each - JAVA/JS
• Использование цикла for в стиле for-each для обработки коллекций - JAVA/JS
• Создание объектов, реализующих интерфейс Iterable - JAVA/JS
• Аргументы переменной длины. Средство формирования списка с переменным числом аргументов - JAVA/JS
• Перегрузка методов с аргументом переменной длины - JAVA/JS
• Аргументы переменной длины и неоднозначность - JAVA/JS
• Описание перечислимого типа - JAVA/JS
• Методы values() и valueOf() - JAVA/JS
• Перечислимый тип в Java — это класс - JAVA/JS
• Перечислимые типы, наследующие тип enum - JAVA/JS
• Описание средства "метаданные" - JAVA/JS
• Задание правил сохранения - JAVA/JS
• Получение аннотаций во время выполнения программы с помощью рефлексии - JAVA/JS
• Метаданные. Использование значений по умолчанию - JAVA/JS
• Метаданные. Аннотации-маркеры - JAVA/JS
• Метаданные. Одночленные аннотации - JAVA/JS
• Статический импорт. Описание статического импорта - JAVA/JS
• Статический импорт. Общий вид оператора статического импорта - JAVA/JS
• Импорт статических членов классов, созданных Вами - JAVA/JS
• Статический импорт. Неоднозначность - JAVA/JS
• Форматирование вывода с помощью класса Formatter - JAVA/JS
• Применение метода printf() языка Java - JAVA/JS
• Класс Scanner - JAVA/JS
• Несколько примеров применения класса Scanner - JAVA/JS
• Возможность применения настраиваемых типов при работе с коллекциями - JAVA/JS
• Демонстрация нескольких новых методов побитных манипуляций   в классе Integer   - JAVA/JS
• Поддержка 32-битных кодовых точек для символов Unicode - JAVA/JS
• Применение класса ProcessBuilder - JAVA/JS
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Компьютерная литература | Следующая тема »


 




[ Время генерации скрипта: 0.3639 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.