Чтение онлайн

на главную - закладки

Жанры

Философия Java3

Эккель Брюс

Шрифт:

кода, 169 повышение, 92 подобъект, 175, 184 позднее связывание, 198, 202 поле TYPE (для примитивов), 359 полиморфизм, 31, 198, 220, 353, 395 и конструкторы, 208 разделение типов, 198 потоки, 557 потоки выполнения

взаимное исключение, 581 взаимодействие через ввод/вывод, 601 демоны, 567 недостатки, 630 ожидание, 564, 598 передача управления, 567 последовательность выполнения, 564 приоритет, 565 присоединение, 576 производительность, 558 простая блокировка, 582 рекомендации по применению, 629 синхронизация, 581

совместное использование ограниченных

ресурсов, 578 уведомление, 598 предпочтения, 553 преждевременная ссылка, 139 преобразование

восходящее, 186, 199

и интерфейс, 227 нисходящее, 218 типов к строке, 171 преобразования типов, 32 прерывание, 314 примитивы, 51 приоритет

операций, 72 потоков, 565 присвоение, 73 программист-клиент, 152 производные классы, 25 производный класс, инициализация, 174 пространство

имен, 153 пустые константы, 190

Р

разделение

интерфейса и реализации, 164 раннее связывание, 201 распечатка в двоичном формате, 88 расширяемая программа, 205 реализация

сокрытие, 163, 249 рефлексия, 376, 468

отличие от RTTI, 377

С

С++, 48

сборка мусора, 130, 132

как работает сборщик мусора, 134 порядок удаления объектов, 182 сборщик мусора, 54 связуемость, 22 связывание

во время выполнения , 198, 202 динамическое, 198 позднее, 198

позднее (динамическое), 202 раннее, 202 сервлеты, 47 сериализация

и ключевое слово transient, 544 и хранение объектов, 548 управление процессом сериализации, 540 сигнатура, 57 синонимией, 74

синхронизированная блокировка, 591

система управления, 266

события

система, управляемая по событиям, 266 совмещение имен, 74 сокрытие реализации, 163 сообщения, 20 спецификатор

protected, 185 спецификатор доступа, 152, 159 private, 152, 162 protected, 152, 163 public, 152, 160 интерфейс, 225 список, 280 ссылки, 49

статический блок, 144 стек, 292

стиль написания классов, 164 строка

перегрузка оператора + 173

т

удаленный вызов методов, 536 указатели, отсутствие в Java, 264

С++, деструктор, 130 Java, компиляция и запуск программы, 63

хранение данных, 50

Брюс Эккель

Философия Java. Библиотека программиста 4-е издание

Перевел с английского Е. Матвеев

Заведующий редакцией Руководитель проекта Ведущий редактор Научные редакторы Художественный редактор Корректоры Верстка

А. Сандрыкин П. Маннинен А. Пасечник Е. Матвеев, А. Пасечник А. Татарко Е. Каюрова, И. Тимофеева Л. Харитонов

Подписано в печать 29.08.08. Формат 70x100/16. Усл. п. л. 51,6. Тираж 2000. Заказ № 829. ООО «Питер Пресс», 198206, Санкт-Петербург, Петергофское шоссе, д. 73, лит. А29. Налоговая льгота — общероссийский классификатор продукции OK 005-93,

том 2;95 3005 — литература учебная. Отпечатано по технологии CtP в в ГП ПО «Псковская областная типография». 180004, г. Псков, ул. Ротная, 34.

Некоторые разработчики языков считают, что объектно-ориентированное программирование плохо подходит для решения некоторых задач, и выступают за объединение разных подходов в муль-типарадигменных

языках программирования.

Для большинства диаграмм этого вполне достаточно. Не обязательно уточнять, что именно используется в данном случае — композиция или агрегирование.

На самом деле это слишком сильное утверждение, поскольку объекты могут существовать на разных компьютерах и адресных пространствах, а также храниться на диске. В таких случаях для идентификации объекта приходится использовать не адрес памяти, а что-то другое.

Некоторые специалисты различают эти два понятия: они считают, что тип определяет интерфейс, а класс — конкретную реализацию этого интерфейса.

Примитивные типы в контейнерах храниться не могут, но благодаря механизму автоматической упаковки Java SE5 это ограничение почти несущественно. Далее в книге эта тема будет рассмотрена более подробно.

Примитивные типы, о которых речь пойдет далее, являются особым случаем.

Этот вопрос очень важен. Существуют люди, утверждающие: «Ясно, это указатель», но это предполагает соответствующую реализацию. Также ссылки Java по синтаксису более похожи на ссылки С++, чем на его указатели. В первом издании книги я решил ввести новый термин «дескриптор» (handle), потому что ссылки Java и С++ имеют несколько значительных различий. Я основывался на опыте С++ и не хотел сбивать с толку программистов на этом языке, так как большей частью именно они будут изучать Java. Во втором издании я решил прибегнуть к более традиционному термину «ссылка», предположив, что это поможет быстрее освоить новые особенности языка, в котором и без моих новых терминов много необычного. Однако есть люди, возражающие против термина «ссылка». Я прочитал в одной книге, что «совершенно неверно говорить, что Java поддерживает передачу объектов по ссылке», потому что идентификаторы объектов Java на самом деле (согласно автору) являются ссылками на объекты. И (он продолжает) все фактически передается по значению. Так что передача идет не по ссылке, а «ссылка на объект передается по значению». Можно поспорить с тем, насколько точны столь запутанные рассуждения, но я полагаю, что мое объяснение упрощает понимание концепции и ничему не вредит (блюстители нравственности могут сказать, что я лгу вам, но я всегда могу возразить, что речь идет всего лишь о подходящей абстракции).

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

 Статические методы, о которых вы узнаете немного позже, вызываются для класса, а не для объекта.

Часто используется компилятор IBM jikes, так как он работает намного быстрее компилятора javac от Sun. Также существуют проекты с открытыми исходными текстами, направленные на создание компиляторов, сред времени исполнения и библиотек Java.

Поделиться:
Популярные книги

Вдова на выданье

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Вдова на выданье

Бракованная невеста. Академия драконов

Милославская Анастасия
Фантастика:
фэнтези
сказочная фантастика
5.00
рейтинг книги
Бракованная невеста. Академия драконов

Идеальный мир для Лекаря 29

Сапфир Олег
29. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 29

30 сребреников

Распопов Дмитрий Викторович
1. 30 сребреников
Фантастика:
попаданцы
альтернативная история
фэнтези
фантастика: прочее
5.00
рейтинг книги
30 сребреников

Идеальный мир для Социопата 3

Сапфир Олег
3. Социопат
Фантастика:
боевая фантастика
6.17
рейтинг книги
Идеальный мир для Социопата 3

Секреты серой Мыши

Страйк Кира
Любовные романы:
любовно-фантастические романы
6.60
рейтинг книги
Секреты серой Мыши

Пограничная река. (Тетралогия)

Каменистый Артем
Пограничная река
Фантастика:
фэнтези
боевая фантастика
9.13
рейтинг книги
Пограничная река. (Тетралогия)

Тайны затерянных звезд. Том 2

Лекс Эл
2. Тайны затерянных звезд
Фантастика:
боевая фантастика
космическая фантастика
космоопера
фэнтези
5.00
рейтинг книги
Тайны затерянных звезд. Том 2

Жестокая свадьба

Тоцка Тала
Любовные романы:
современные любовные романы
4.87
рейтинг книги
Жестокая свадьба

Темный Лекарь 3

Токсик Саша
3. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь 3

Лютая

Шёпот Светлана Богдановна
Любовные романы:
любовно-фантастические романы
6.40
рейтинг книги
Лютая

Призван, чтобы защитить?

Кириллов Сергей
2. Призван, чтобы умереть?
Фантастика:
фэнтези
рпг
7.00
рейтинг книги
Призван, чтобы защитить?

Пятничная я. Умереть, чтобы жить

Это Хорошо
Фантастика:
детективная фантастика
6.25
рейтинг книги
Пятничная я. Умереть, чтобы жить

Злыднев Мир. Дилогия

Чекрыгин Егор
Злыднев мир
Фантастика:
фэнтези
7.67
рейтинг книги
Злыднев Мир. Дилогия