Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Thinking in Java 4th edition.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.65 Mб
Скачать

Глава 12 обработка ошибок и исключений 302

Содержание 302

Основные исключения 303

Аргументы исключения 303

Перехват исключений 304

Обработчики исключений 304

Прерывание в сравнении с возобновлением 305

Создание собственных исключений 306

Регистрация исключений 307

Спецификации исключений 311

Перехват произвольных исключений 311

Трассировка стека 313

Повторное возбуждение исключения 314

Цепочки исключений 316

Стандартные исключения Java 320

Завершение с помощью finally 321

Для чего нужен блок finally? 323

Использование finally с return 325

Проблема потерянных исключений 326

Ограничения при использовании исключений 327

Конструкторы 330

Идентификация исключений 334

Альтернативные решения 335

Передача исключений на консоль 338

Преобразование контролируемых исключений в неконтролируемые 338

Основные правила обработки исключений 340

Резюме 341

Глава 13 информация о типах 342

Содержание 342

Необходимость в динамическом определении типов (RTTI) 342

Объект Class 344

Литералы class 348

Параметризованные ссылки 350

Новый синтаксис преобразования 351

Проверка перед приведением типов 351

Использование литералов class 358

Динамический вызов instanceof 359

Рекурсивный подсчет 361

Регистрация фабрик 362

instanceof и сравнение Class 365

Рефлексия: динамическая информация о классе 366

Извлечение информации о методах класса 367

Динамические посредники 369

Объекты с неопределенным состоянием 373

Интерфейсы и информация о типах 379

Резюме 384

Глава 14 параметризация 386

Содержание 386

Простая параметризация 387

Кортежи 389

Класс стека 391

RandomList 392

Параметризованные интерфейсы 393

Параметризованные методы 396

Вычисление типа аргумента 397

Явное указание типа 399

Использование параметризованных методов с Generator 400

Обобщенный генератор 400

Упрощение работы с кортежами 402

Вспомогательный класс Set 403

Анонимные внутренние классы 406

Построение сложных моделей 408

Тайна стирания 410

Подход C++ 412

Миграционная совместимость 414

Проблемы стирания 414

Проблемы на границах 416

Компенсация за стирание 419

Создание экземпляров типов 420

Массивы параметризованных типов 422

Ограничения 426

Метасимволы 429

Насколько умен компилятор? 431

Контравариантность 433

Неограниченные метасимволы 434

Реализация параметризованных интерфейсов 438

Преобразования типов и предупреждения 439

Перегрузка 439

Резюме 440

Глава 15 массивы 442

Содержание 442

Особенности массивов 442

Массив как объект 444

Возврат массива 446

Многомерные массивы 447

Массивы и параметризация 451

Создание тестовых данных 452

Генераторы данных 454

Создание массивов с использованием генераторов 458

Вспомогательный инструментарий Arrays 462

Копирование массива 463

Сравнение массивов 464

Сравнение элементов массивов 465

Сортировка массива 468

Поиск в отсортированном массиве 469

Резюме 470

Глава 16 система ввода/вывода java 472

Содержание 472

Класс File 474

Список каталогов 474

Безымянные внутренние классы 475

Проверка существования и создание каталогов 477

Ввод и вывод 479

Типы InputStream 479

Типы OutputStream 481

Добавление атрибутов и интерфейсов 481

Чтение из InputStream с использованием FilterInputStream 482

Запись в OutputStream с помощью FilterOutputStream 483

Классы Reader и Writer 484

Источники и приемники данных 485

Изменение поведения потока 486

Классы, оставленные без изменений 487

RandomAccessFile: сам по себе 487

Типичное использование потоков ввода/вывода 488

Буферизованное чтение из файла 488

Чтение из памяти 489

Форматированное чтение из памяти 489

Вывод в файл 491

Сокращенная форма вывода текстового файла 491

Сохранение и восстановление данных 492

Чтение/запись файлов с произвольным доступом 493

Каналы 495

Средства чтения и записи файлов 495

Стандартный ввод/вывод 497

Чтение из стандартного потока ввода 497

Замена System.out на PrintWriter 498

Перенаправление стандартного ввода/вывода 499

Новый ввод/вывод (nio) 500

Преобразование данных 503

Извлечение примитивов 505

Представления буферов 506

О порядке байтов 509

Буферы и операции с данными 510

Подробно о буфере 512

Отображаемые в память файлы 515

Производительность 516

Блокировка файлов 518

Блокирование части отображаемого файла 519

Сжатие данных 520

Простое сжатие в формате GZIP 521

Многофайловые архивы ZIP 522

Архивы Java ARchives (файлы JAR) 524

Сериализация объектов 526

Обнаружение класса 529

Управление сериализацией 530

Ключевое слово transient 533

Альтернатива для Externalizable 535

Долговременное хранение 537

Резюме 544

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]