Введение
...Предисловие
...Создание второй редакции
...Об этой книге
…Работа с книгой
......Вопросы для повторения
......Заключение
......Упражнение на программирование
...Обратная связь
...Об авторах
...Благодарности (Первая редакция)
…Благодарности (Вторая редакция)
Глава 1. Основы программирования на Java
...1.1. Введение
...1.2. Классы
......Объявление членов: поля и методы
...1.3. Объекты
......Порождение экземпляров класса
......Объектные ссылки
...1.4. Члены экземпляра
......Вызовы методов
...1.5. Статические члены
...1.6. Наследование
...1.7. Агрегация
...1.8. Принципы Java
......Вопросы для повторения
...1.9. Java-программы
...1.10. Пример Java-приложения
......Основные элементы приложения на Java
......Компилирование и выполнение приложения
......Вопросы для повторения
......Упражнение на программирование
......Заключение
Глава 2. Основы языка
...2.1. Основные элементы языка
......Лексические символы
......Идентификаторы
......Ключевые слова
......Константы
......Целые константы
......Вещественные константы
......Логические константы
......Символьные константы
......Строковые константы
......Пустое место
......Комментарии
......Вопросы для повторения
...2.2. Примитивные типы данных
......Целые типы
......Символьный тип
......Вещественные типы
......Логический тип
......Вопросы для повторения
...2.3. Объявления переменных
......Объявление и инициализация переменных
......Переменные, содержащие объектные ссылки
......Время жизни переменных
...2.4. Первоначальные значения для переменных
......Значения по умолчанию для полей
......Инициализация локальных переменных примитивных типов данных
......Инициализация локальных ссылочных переменных
...2.5. Структура файла исходного кода Java
…...Вопросы для повторения
...2.6. Метод main()
......Вопросы для повторения
......Вопросы для повторения
......Упражнения на программирование
......Заключение
Глава 3. Операторы и присваивания
...3.1. Приоритет и правила ассоциативности для операторов
...3.2. Порядок вычисления операндов
...3.3. Преобразования
......Унарный оператор приведения: (тип)
......Преобразования сужения и расширения
......Числовые расширения
......Случаи преобразования типов
...3.4. Простой оператор присваивания =
......Присваивание примитивных значений
......Присваивание ссылок
......Многократные присваивания
......Преобразования числовых типов при присваивании
…...Вопросы для повторения
...3.5. Арифметические операторы: *, /, %, +, –
......Приоритет и ассоциативность арифметических операторов
......Порядок вычислений в арифметических выражениях
......Диапазон числовых значений
......Унарные арифметические операторы: –, +
......Мультипликативные операторы с двумя операндами: *, /, %
......Аддитивные двучленные операторы: +, –
......Числовые расширения в арифметических выражениях
......Арифметические составные операторы присваивания: *=, /=, %=, +=, –=
…...Вопросы для повторения
...3.6. Бинарный строковый оператор конкатенации: +
...3.7. Различные операторы инкремента и декремента: ++, ––
......Оператор инкремента ++
......Оператор декремента – –
......Вопросы для повторения
...3.8. Логические выражения
...3.9. Операторы отношения: =
...3.10. Равенство
......Равенство значений примитивных типов данных: ==, !=
......Равенство ссылок на объекты: ==, !=
......Равенство значений объектов
...3.11. Булевы логические операторы: !, ^, &, |
......Вычисление операнда для булевых логических операторов
......Булевы логические составные операторы присваивания: &=, ^=, |=
...3.12. Условные операторы: &&, ||
......Вычисление по «короткой схеме»
......Вопросы для повторения
...3.13. Целочисленные поразрядные операторы: ~, &, |, ^
…...Поразрядные составные операторы присваивания: &=, ^=, |=
...3.14. Операторы сдвига: , >>>
......Оператор левого сдвига: > со знаковым заполнением
......Оператор правого сдвига с нулевым заполнением: >>>
......Сдвиговый составной оператор присваивания: =, >>>=
...3.15. Условный оператор: ?
...3.16. Другие операторы: new, [], instanceof
…...Вопросы для повторения
...3.17. Передача параметров
...3.18. Передача значений примитивных типов данных
...3.19. Передача значений ссылок на объекты
...3.20. Передача ссылок на массив
...3.21. Элементы массива как фактические параметры
...3.22. Параметры final
...3.23. Аргументы программы
......Вопросы для повторения
......Упражнения на программирование
......Заключение
Глава 4. Объявления и управление доступом
...4.1. Массивы
......Объявление переменных массива
......Создание массива
......Инициализация массива
......Использование массивов
......Анонимные массивы
......Многомерные массивы
......Вопросы для повторения
...4.2. Определение классов
...4.3. Определение методов
......Предложения
......Методы экземпляра и объектная ссылка this
......Перегрузка метода
...4.4. Конструкторы
......Конструктор по умолчанию
......Перегруженные конструкторы
...4.5. Правила видимости
......Область видимости класса для членов
......Область видимости блока для локальных переменных
......Вопросы для повторения
4.6. Пакеты
......Определение пакетов
......Использование пакетов
…...Компиляция и выполнение кода из пакета
...4.7. Модификаторы доступа для классов и интерфейсов верхнего уровня
...4.8. Другие модификаторы для классов
......Абстрактные (abstract) классы
......Неизменяемые (final) классы
......Вопросы для повторения
...4.9. Модификаторы доступа членов класса
......Общедоступные (public) члены
......Защищенные (protected) члены
......Доступ по умолчанию для членов
......Закрытые (private) члены
…...Вопросы для повторения
...4.10. Другие модификаторы для членов
......Статические члены
......Неизменяемые члены
......Абстрактные методы
......Синхронизованные методы
......Встраиваемые методы
......Транзитные (transient) поля
......Изменчивые (volatile) поля
......Вопросы для повторения
......Заключение
......Упражнения на программирование
Глава 5. Поток команд управления, управление исключениями и диагностические утверждения
...5.1. Обзор операторов управления потоком выполнения программы
...5.2. Операторы выбора
......Простой оператор if
......Оператор if-else
......Оператор switch
......Вопросы для повторения
...5.3. Операторы цикла
......Оператор while
......Оператор do-while
......Оператор for
...5.4. Команды перехода
......Маркированные операторы
......Оператор break
......Оператор continue
......Оператор return
…...Вопросы для повторения
...5.5. Выполнение, основанное на стеке, и распространение исключения
...5.6. Типы исключений
......Класс Exception
......Класс RuntimeException
......Класс Error
......Проверяемые (сhecked) и непроверяемые (unchecked) исключения
…...Определение нового исключения
...5.7. Обработка исключений: try, catch и finally
......Блок try
......Блок catch
......Блок finally
...5.8. Оператор throw
...5.9. Предложение throws
…...Вопросы для повторения
...5.10. Диагностические утверждения (assertions)
......Оператор assert и класс AssertionError
......Компилирование диагностических утверждений
......Разрешение и запрещение диагностических утверждений
......Применение диагностических утверждений
......Вопросы для повторения
......Заключение
......Упражнения на программирование
Глава 6. Объектно-ориентированное программирование
...6.1. Одиночное наследование реализации
......Концепции объектно-ориентированного программирования
......Вопросы для повторения
...6.2. Переопределение и сокрытие методов
......Переопределение метода экземпляра
......Сокрытие полей
......Сокрытие статического метода
......Переопределение в сравнении с перегрузкой
......Объектная ссылка super
......Вопросы для повторения
...6.3. Организация цепочки конструкторов с помощью this() и super()
......Вызов конструктора this()
......Вызов конструктора super()
......Вопросы для повторения
...6.4. Интерфейсы
......Описание интерфейсов
......Объявления прототипов методов
......Реализация интерфейсов
......Расширение интерфейсов
......Константы в интерфейсах
......Вопросы для повторения
...6.5. Завершение изучения иерархии типов
...6.6. Присваивание, передача и преобразование типов значений ссылок
......Приведение типов значений ссылок во время присваивания
......Приведения типов во время передачи параметров
......Приведение типа для ссылок и оператор instanceof
......Преобразование ссылок типов класса и интерфейса
......Вопросы для повторения
...6.7. Полиморфизм и динамический поиск метода
…...Вопросы для повторения...
...6.8. Наследование в сравнении... с агрегацией
......Инкапсуляция...
......Выбор между наследовани...ем и агрегацией
......Вопросы для повторения...
......Заключение
…...Упражнения на программирование
Глава 7. Вложенные классы и интерфейсы
...7.1. Обзор вложенных классов и интерфейсов
...7.2. Классы и интерфейсы как статические члены
......Объявление и использование классов и интерфейсов
......как статических членов
......Доступ к членам из объемлющего контекста
...7.3. Классы – нестатические члены
......Порождение объектов классов – нестатических членов
......Обращение к членам объемлющего контекста
......Вопросы для повторения
...7.4. Локальные классы
......Доступ к объявлениям в объемлющем контексте
......Создание экземпляров локальных классов
...7.5. Безымянные классы
......Расширение существующего класса
......Реализация интерфейса
......Создание экземпляров безымянных классов
......Доступ к объявлениям в объемлющем контексте
......Вопросы для повторения
......Заключение
......Упражнение на программирование
Глава 8. Время жизни объекта
...8.1. Сборка мусора
......Достижимые ссылки
......Облегчение сборки мусора
......Финализация объекта
......Сцепление финализаторов
......Запуск сборки мусора
......Вопросы для повторения
...8.2. Инициализаторы
......Выражения инициализаторов полей
......Блоки статических инициализаторов
......Блоки инициализаторов экземпляра
......Конструирование первоначального состояния объекта
......Вопросы для повторения
......Заключение
Глава 9. Потоки выполнения
...9.1. Многозадачность
...9.2. Обзор потоков
…...Главный поток
...9.3. Создание потока
......Реализация интерфейса Runnable
......Расширение класса Thread
......Вопросы для повторения
...9.4. Синхронизация
......Блокировки
......Синхронизированные методы
......Синхронизированные блоки
......Вопросы для повторения
...9.5. Переходы потоков между состояниями
......Состояния потока
......Приоритеты потоков
......Планировщик потоков
......Работа и уступка процессора
......Сон и пробуждение
......Ожидание и уведомление
......Блокирование из-за ввода/вывода
......Завершение потока
......Взаимоблокировки
......Вопросы для повторения
......Заключение
......Упражнения на программирование
Глава 10. Основные классы
...10.1. Обзор пакета java.lang
...10.2. Класс Object
......Вопросы для повторения
...10.3. Классы-оболочки
......Общие конструкторы классов-оболочек
......Общие вспомогательные методы классов-оболочек
......Числовые классы-оболочки
......Класс Character
......Класс Boolean
......Вопросы для повторения
...10.4. Класс Math
......Разнообразные функции округления
......Экспоненциальные функции
......Тригонометрические функции
......Генератор псевдослучайных чисел
......Вопросы для повторения
...10.5. Класс String
......Создание и инициализация строк
......Чтение символов из строки
......Сравнение строк
......Регистр символов в строке
......Конкатенация строк
......Поиск символов подстрок
......Извлечение подстроки
......Преобразование значений примитивов и объектов в строки
......Вопросы для повторения
...10.6. Класс StringBuffer
......Создание строковых буферов
......Чтение и изменение символов в строковых буферах
......Создание строк из строковых буферов
......Добавление, вставка и удаление символов в строковом буфере
......Управление емкостью строкового буфера
......Вопросы для повторения
…...Заключение
…...Упражнения на программирование
Глава 11. Коллекции и карты
...11.1. Инструментальный набор коллекций
…...Основные интерфейсы
…...Реализации
...11.2. Коллекции
......Основные действия
......Массовые операции
......Операции с массивами
…...Итераторы
…...Вопросы для повторения
...11.3. Множества
…...HashSet и LinkedHashSet
...11.4. Списки
…...ArrayList, LinkedList и Vector
…...Вопросы для повторения
...11.5. Карты
......Основные операции
......Массовые операции
......Представления коллекции
HashMap, LinkedHashMap и Hashtable
...11.6. Отсортированные множества и отсортированные карты
......Интерфейс Comparator
......Интерфейс Comparable
......Интерфейс SortedSet
......Интерфейс SortedMap
......TreeSet и TreeMap
......Вопросы для повторения
...11.7. Реализация методов equals(), hashCode() и compareTo()
......Метод equals()
......Метод hashCode()
......Метод compareTo()
...11.8. Работа с коллекциями
......Синхронизированные декораторы коллекций
......Неизменные декораторы коллекций
......Упорядочивание коллекций
......Поиск в коллекциях
......Одноэлементные коллекции
......Другие вспомогательные методы класса Collections
......Вспомогательные методы класса Arrays
......Реализации абстракций
......Вопросы для повторения
…...Заключение
…...Упражнения на программирование
Приложение A. Сдача экзамена SCPJ2 1.4
...А.1. Подготовка к экзамену для программиста
...А.2. Регистрация для экзамена
......Получение ваучера для экзамена
......Запись на тест
......Контактная информация
…...После сдачи экзамена
...А.3. Как проводится экзамен
......Места тестирования
......Использование предоставленного времени
...…Экзаменационная программа
...А.4. Вопросы
......Типы задаваемых вопросов
......Типы ожидаемых ответов
......Темы, охватываемые вопросами
...А.5. Переход к экзамену для разработчика
Приложение Б. Требования экзамена SCPJ2 1.4
Приложение В. Требования экзамена Java 2 Platform Upgrade
Приложение Г. Аннотированные ответы на вопросы для повторения
Приложение Д. Решения к упражнениям на программирование
Приложение Е. Пробный экзамен
Приложение Ж. Системы счисления и представление чисел
...Ж.1. Системы счисления
......Двоичная, восьмеричная и шестнадцатеричная системы счисления
......Преобразование двоичных чисел в десятичные
......Преобразование восьмеричных и шестнадцатеричных чисел в десятичные
...Ж.2. Связь между двоичными, восьмеричными и шестнадцатеричными числами
...Ж.3. Преобразование десятичных чисел
…...Преобразование десятичных чисел в двоичные
……Преобразование десятичных чисел в восьмеричные и шестнадцатеричные
...Ж.4. Представление целых чисел
…...Вычисление дополнительного кода числа
Приложение З. O компакт-диске
...З.1. Экзамены-тренажеры от Whizlabs
......Экзамен-тренажер Whizlabs SCJP 1.4
......Экзамен-тренажер для Whizlabs SCJP Upgrade
......Интернет-версии экзаменов-тренажеров
......Полные версии экзаменов-тренажеров
...З.2. Статьи из книги
Предметный указатель