KnigaRead.com/

Брюс Эккель - Философия Java3

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Брюс Эккель, "Философия Java3" бесплатно, без регистрации.
Перейти на страницу:

динамический вызов instanceof, 369 динамическое определение типов (RTTI), 219 неверное использование, 394 объект Class, 354 пример с фигурами, 352 рефлексия, 376 динамическое связывание, 198, 202 доклеты, 65

долговременное хранение и предпочтения, 553 объектов, 548 доступ

в пределах пакета, 160 модификатор private, 152

з

завершающие действия, 132 загрузка

классов, 196 файлов .class, 156 замыкание, 264 запуск программы на Java, 63

и

инициализация, 210

Static-инициализация, 196 базового класса, 174 и загрузка классов, 195 и наследование, 195 инициализация для экземпляра, 145 инициализация с помощью

конструктора, 116 инициализация членов класса в точке

определения, 138 инициализация экземпляра, 255 отложенная, 171

инициализация (продолжение)

порядок инициализации, 140, 216 членов класса, 171 инкапсуляция, 164 инструмент

JAR, 154, 157, 534 интерфейс

Externalizable, 541

альтернативный подход, 545 FilenameFilter, 484 Serializable, 536, 541, 544, 545, 552 вложенные интерфейсы, 239 и наследование, 233 инициализация полей интерфейса, 238 интерфейс базового класса, 205 столкновения имен, 235 интерфейс объекта, 21 исключение

ClassCastException, 362 ClassNotFoundException, 540 IllegalMonitorStateException, 599 IOException, 507, 508 NullPointerException, 329 RuntimeException, 329, 348 UnsupportedOperationException, 520 блок try, 312

возбуждение исключения, 311 возобновление и прерывание, 314 защищенная секция, 312 и конструкторы, 339 и наследование, 336, 343 идентификация, 343 контролируемое, 320 неконтролируемое, 329 обработка, 310 обработчик, 313 перехват, 312, 320 повторное возбуждение, 322 потеря, 335

предложение finally, 330 рекомендации по использованию, 350 создание собственных, 314 спецификации, 319 тип Error, 328 тип Exception, 328 исключения, 38

контролируемые генерация, 350 заворачивание, 350 исключительная ситуация, 310 итератор, 288

методы интерфейса Iterator, 288

к

каналы (pipes), 490, 505, 601 каналы nio (channels), 510 каркас приложения, 266

карта, 280 класс

Adler32, 532

BufferedlnputStream, 493 BufferedOutputStream, 494 BufferedReader, 496 BufferedWriter, 496 ByteArraylnputStream, 490, 500 ByteArrayOutputStream, 491 ByteBuffer, 510 Channels, 510 CharArrayReader, 495 CharArrayWriter, 495 CharBuffer, 513 Charset, 514

CheckedlnputStream, 531 Checked OutputStream, 531 Class, 354, 550 CRC32, 532 Daemon, 567

DatalnputStream, 492, 496, 499, 502 DataOutputStream, 494, 497, 502 DeflaterOutputStream, 531 File, 484, 497 FileChannel, 510 FilelnputReader, 498 FilelnputStream, 490 FileOutputStream, 491 FileReader, 495 FileWriter, 495, 500 FilterlnputStream, 490 FilterOutputStream, 491 FilterReader, 496 FilterWriter, 496 GZIPInputStream, 531 GZIPOutputStream, 531 InflaterlnputStream, 531 InputStream, 489 InputStreamReader, 495 LineNumberlnputStream, 493 LineNumberReader, 496 Object, 172, 598 ObjectOutputStream, 537 OutputStream, 489, 491 OutputStream Writer, 495 PipedlnputStream, 490 Piped OutputStream, 491 PipedReader, 495, 601 PipedWriter, 495, 601 PrintStream, 493, 494 PrintWriter, 496, 500 PushbacklnputStream, 493 PushBackReader, 496 RandomAccessFile, 497, 503 Reader, 489, 494, 495 RuntimeException, 348 SequencelnputStream, 490, 497

класс {продолжение)

StreamTokenizer, 496 StringBufferlnputStream, 490 StringReader, 495 StringWriter, 495 System.err, 315 Writer, 489, 494, 495 ZipEntry, 534 ZipInputStream, 531 ZipOutputStream, 531 базовый, 172, 201 вложенный, 258 внутренний, 245

безымянный, 251, 485 переопределение, 273 статический, 258 доступ к классам, 164 загрузка классов, 196 производный, 201

сравнение и оператор instanceof, 375 стиль написания, 164 классы коллекций, 277 клиент/сервер, архитектура, 40 ключевое слово catch, 313 extends, 163, 172 final, 188 finally, 330 implements, 225 instanceof, 362 interface, 224 private, 162 protected, 163, 185 public, 160 static, 129 super, 175

synchronized, 581, 582 this, 126 throw, 312 transient, 544 try, 312 volatile, 567 кодирование ASCII, 503 UTF-8, 503 коллекция, 280 команды

break, 108

break и continue с метками, 110 *

continue, 108

do-while, 103

for, 103

if-else, 102

switch, 113

while, 103

комментарии и встроенная документация, 64 компилируемый модуль, 154 компиляция программы на Java, 63

композиция, 24, 169, 217

выбор между композицией и наследованием, 184 динамическое изменение поведения, 218 совмещение композиции и наследования, 178 константа

времени компиляции, 188 группа постоянных значений, 238 конструктор, 116 аргументы, 117 возвращаемое значение, 118 вызов из другого конструктора, 128 вызов конструктора базового класса

с аргументами, 175 и безымянный внутренний класс, 251 и обработка исключений, 339 и полиморфизм, 208 имя конструктора, 117 перегрузка, 119 по умолчанию, 125

поведение полиморфных методов, 214 порядок вызова конструкторов, 208 синтезирование конструктора по умолчанию, 175 контейнеры, 34

классы, 277 контрольная сумма, 532 конфликты имен, 157 конфликты имен при совмещении

интерфейсов, 235 копирование

поверхностное, 475 критическая секция, 590 куча, 37

л

литерал class, 358

м

манифест, 535 массив

передача аргументов в метод, 149 проверка границ, 147 размер, 147 массивы, 454

и параметризация, 463 многомерные, 460 ступенчатые, 460 метод

allocateQ, 511 allocateDirect(), 512 array(), 520 Array.sort(), 484 asCharBuffer(), 513 available(), 500 capacity(), 522 Charset.forName(), 515

метод (продолжение)

Class.forName(), 356 Class.getlnterfaces(), 358 Class.getSuperclass(), 358 Class.islnstance(), 369 Class.newlnstance(), 358 clear(), 512, 522 close(), 501 entries(), 534 equals(), 79 final, 202, 216 finalize(), 130

вызов напрямую, 132 условие «готовности», 132 flip(), 512, 522 forName(), 356 getBytes(), 500 getCause(), 349 getChannelO, 511 getCheckSum(), 531 getClass(), 554 getFilePointer(), 497 getNextEntry(), 534 get Priori ty(), 565 hasRemaining(), 522 interrupt), 576 isAlive(), 576 isDaemon(), 570 islnterrupted(), 577 isShared(), 529 join(), 576 keys(), 554 length(), 497 limit(), 517, 522 lock(), 529 main(), 173 mark(), 498, 522 mkdirs(), 489 notify(), 598 notifyAll(), 598 order(), 519 position(), 522 print(), 493 println(), 493 read(), 499 readDoubleO, 503 readExternal(), 541 readLine(), 501 readObject(), 537, 545 readUTFO, 503 release(), 529, 530 remaining(), 522 renameTo(), 489 reset(), 498 seek(), 497, 503 setDaemon(), 568 setErr(PrintStream), 509 setIn(InputStream), 509

метод (iпродолжение)

setOut(PrintStream), 509 setPriority(), 565 sleep(), 564

отличие от метода wait(), 598 slice(), 530 split(), 507 static, 129

System.getProperty(), 515 systemNodeForPackage(), 554 Thread.toString(), 566 throwRuntimeException(), 350 toStringO, 170, 566 transferFrom(), 512 transferTo(), 512 tryLock(), 529 userNodeForPackage(), 554 wait(), 598 writeDouble(), 503 writeExternal(), 541 writeObject(), 537, 545 writeUTF(), 503 yield(), 567

встроенный вызов, 192 закрытый, 216 перегрузка, 118 полиморфный, 198

различение перегруженных методов, 120 связывание «метод-вызов», 201 статический, 582 метод setPriority(), 565 методы, 56 многозадачность, 557

взаимная блокировка, 602 критическая секция, 590 недостатки, 630 простая блокировка, 582 рекомендации по применению, 629 синхронизация потоков, 581 типовые задачи синхронизации, 603 управляющий монитор, 582 уступки, 567 многомерные массивы, 460 множество, 280

монитор (в многозадачности), 582

для класса, 582 мультимножество, 280

н

наследование, 25, 163, 169, 172, 198 выбор между композицией и наследованием, 184 использование наследования, 217 множественное наследование, 232 от внутренних классов, 272 расширение интерфейсов через наследование, 233

неизменные аргументы, 191 неизменные данные, 188 неизменные классы, 193 неизменные методы, 192 нисходящее преобразование, 218

безопасное нисходящее приведение типов, 362

о

обработчик исключений, 330 обратный вызов, 264 объект

легковесное долговременное

хранение, 536 объектно-ориентированное

программирование, 353 присвоение и копирование ссылок, 73 процесс создания, 143 равенство, 79 сериализация, 536 создание, 117 условие готовности, 132 объектный подход, 18 объекты, 19

однокоренные иерархии, 33 ООП

диаграммы наследования, 353 протокол, 224 операторы, 72 new, 130

арифметические, 75 выбора, 113 запятая, 105 индексирования, 146 логические, 80

ускоренное вычисление, 81 перегрузка, 89 побочный эффект, 72 поразрядные, 84 приведение

расширяющее приведение, 91 сужающее приведение, 91 приведения, 90 приоритет, 72 сдвига, 85 сравнения, 78

тернарный оператор «если-иначе», 88 типовые ошибки использования, 89

п

пакет, 153

и структура каталогов, 159 имена, 59 по умолчанию, 161 пакеты, 59

параметризованные типы, 35 перегрузка

и возвращаемые значения, 124 оператора += для строк, 173 операторов, 89 переключение контекста, 585 переменная

автоматическая, 51 инициализация, 137 переменная окружения CLASSPATH, 156 переполнение, 100 побочный эффект, 125 повторное использование

кода, 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 приоритет

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*