This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.
Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"
Неважно кто вы — разработчик ПО или пользователь — в любом случае слышали о языке Java. В этой книге вы на конкретных примерах изучите основы Java, API, библиотеки классов, приемы и идиомы программирования. Особое внимание авторы уделяют построению реальных приложений.
Вы освоите средства управления ресурсами и исключениями, а также познакомитесь с новыми возможностями языка, появившимися в последних версиях Java.
Author(s): Марк Лой, Патрик Нимайер, Дэниэл Лук Series: Бестселлеры O’Reilly Edition: 5 Publisher: Питер Year: 2023
Предисловие
Кому пригодится эта книга
Последние изменения
Что нового в этом издании книги (Java 11, 12, 13, 14)
Структура книги
Интернет-ресурсы
Условные обозначения
Использование исходного кода примеров
Благодарности
От издательства
Глава 1. Современный язык
Появление Java
Происхождение Java
Развитие
Виртуальная машина
Сравнение Java с другими языками
Структурная безопасность
Упрощать, упрощать, упрощать…
Безопасность типов и связывание методов
Инкрементальная разработка
Динамическое управление памятью
Обработка ошибок
Потоки
Масштабируемость
Безопасность на уровне исполнительной системы Java
Верификатор
Загрузчики классов
Менеджеры безопасности
Безопасность на уровнях приложения и пользователя
История Java
Прошлое: Java 1.0 — Java 13
Настоящее: Java 14
Будущее
Доступные средства
Глава 2. Первое приложение
Инструменты и среда Java
Установка JDK
Установка OpenJDK в Linux
Установка OpenJDK в macOS
Установка OpenJDK в Windows
Настройка конфигурации IntelliJ IDEA и создание проекта
Запуск программы
Загрузка примеров кода
HelloJava
Классы
Метод main()
Классы и объекты
Переменные и типы
HelloComponent
Наследование
Класс JComponent
Отношения между классами
Пакеты и импортирование
Метод paintComponent()
HelloJava2: продолжение
Переменные экземпляра
Конструкторы
События
Метод repaint()
Интерфейсы
До свидания… и снова здравствуйте!
Глава 3. Рабочие инструменты
Среда JDK
Виртуальная машина Java
Запуск приложений Java
Системные параметры
Classpath
javap
Модули
Компилятор Java
Первые эксперименты с Java
JAR-файлы
Сжатие
Утилита jar
Утилита pack200
Следующий шаг
Глава 4. Язык Java
Кодирование текста
Комментарии
Комментарии javadoc
Переменные и константы
Типы
Примитивные типы
Ссылочные типы
Автоматическое определение типов
Передача ссылок
Несколько слов о строках
Команды и выражения
Команды
Выражения
Массивы
Типы массивов
Создание и инициализация массива
Использование массивов
Анонимные массивы
Многомерные массивы
Типы, классы, массивы... и jshell
Глава 5. Объекты в Java
Классы
Объявление классов и создание экземпляров
Обращение к полям и методам
Статические поля и методы
Методы
Локальные переменные
Замещение
Статические методы
Инициализация локальных переменных
Передача аргументов и ссылки
Обертки для примитивных типов
Перегрузка методов
Создание объектов
Конструкторы
Работа с перегруженными конструкторами
Уничтожение объектов
Уборка мусора
Пакеты
Импортирование классов
Пользовательские пакеты
Видимость полей и методов класса
Компиляция с пакетами
Нетривиальное проектирование классов
Субклассирование и наследование
Интерфейсы
Внутренние классы
Анонимные внутренние классы
Систематизация кода и планирование на случай ошибок
Глава 6. Обработка ошибок и запись в журнал
Исключения
Исключения и классы ошибок
Обработка исключений
Всплывающие исключения
Трассировка стека
Проверяемые и непроверяемые исключения
Выдача исключений
«Расползание» блока try
Секция finally
try с ресурсами
Обработка исключений и быстродействие
Проверочные утверждения
Включение и отключение проверочных утверждений
Использование проверочных утверждений
Журнальный API
Общие сведения
Уровни вывода
Простой пример
Конфигурирование журнального API
Протоколировщик
Быстродействие
Исключения в реальном мире
Глава 7. Коллекции и обобщения
Коллекции
Интерфейс Collection
Разновидности коллекций
Интерфейс Map
Ограничения типов
Контейнеры
Можно ли улучшить контейнеры?
Знакомство с обобщениями
Несколько слов о типах
«Ложки не существует»
Стирание типов
Необработанные типы
Отношения между параметризованными типами
Почему List не является List