Язык программирования Java и среда NetBeans

Лекции.

Вадим Монахов "Язык программирования Java и среда NetBeans" БХВ-Петербург, 2011 год, 704 стр.(18,3 мб. pdf)

Java NetBeans-интегрированная среда разработки. В книге изложены основы создания сетевого ПО, а также приложений для мобильных платформ. Рассмотрена технология разработки многопоточных приложений Java для систем с многоядерными процессорами. Материал в книге проиллюстрирован большим количеством примеров. Фундаментом книги стал курса лекций, прочитанных автором на кафедре вычислительной физики Санкт-Петербургского государственного университета. Представлены основные синтаксические построения Java. Рассказано о принципах объектно-ориентированного программирования, особенности проведения численных расчетов. Приводятся основные сведения о среде NetBeans, предназначенной для профессиональной разработки всех типов приложений на Java (ME, SE и EE). Для студентов ИТ специальностей вузов.

ISBN: 978-5-9775-0671-7

Оглавление книги.

Предисловие к третьему изданию 11
Введение 13

Глава 1. Общие представления о языке Java 17
1.1. Java и другие языки программирования. Системное и прикладное программирование 17
1.2. Виртуальная Java-машина, байт-код, JIT-компиляция. Категории программ,написанных на языке Java 22
1.3. Алфавит языка Java. Десятичные и шестнадцатеричные цифры и целые числа.
Зарезервированные слова 28
Алфавит языка Java 29
Десятичные и шестнадцатеричные цифры и целые числа 29
Зарезервированные слова и литералы языка Java 31
1.4. Управляющие последовательности. Символы Unicode. Специальные символы 32
Управляющие последовательности 32
Управляющие последовательности — символы формирования текста 32
Управляющие последовательности — символы Unicode 32
Простые специальные символы 33
Составные специальные символы 34
1.5. Идентификаторы. Переменные и типы. Примитивные и ссылочные типы 35
1.6. Процедурное и объектно-ориентированное программирование. Инкапсуляция 38
1.7. Работа со ссылочными переменными. Сборка мусора 43
1.8. Проекты. Пакеты. Уровни видимости классов. Импорт классов 47
1.9. Базовые пакеты и классы Java 51
1.10. Технологии Java, .NET, ASP, PHP 55
1.11. Среды разработки NetBeans, Eclipse, JDeveloper, JBuilder, IntelliJ IDEA 59
NetBeans 6.5 61
Eclipse 3.4.1 (Ganimede) 63
JDeveloper 11 65
JBuilder 200 67
IntelliJ IDEA 7.0.4 69
Общий итог сравнения сред разработки 70
Краткие итоги по главе 70
Типичные ошибки 73
Задания 74

Глава 2. Среда NetBeans 6.5 75
2.1. Установка JDK 6 75
2.2. Установка среды NetBeans 6.5 79
2.3. Создание в NetBeans простейшего приложения Java 87
2.4. Компиляция файлов проекта и запуск приложения. Jar-файлы 92
2.5. Структура проекта NetBeans 96
2.6. Создание в NetBeans приложения Java с графическим интерфейсом 100
2.7. Редактор экранных форм 105
2.8. Свойства компонентов 110
2.9. Внешний вид приложения — технология Look and Feel 116
2.10. Ведение проектов 119
2.11. Редактирование меню экранной формы 121
2.12. Создание нового класса 129
2.13. Документирование исходного кода в Java 130
2.14. Основные компоненты пакетов swing и awt 139
2.15. Менеджеры размещения (Layout) и якоря (Anchor 144
2.16. Создание приложения Desktop Application 145
Краткие итоги по главе 147
Типичные ошибки 148
Задания 148

Глава 3. Примитивные типы данных и операторы для работы с ними 150
3.1. Булевый (логический) тип 150
3.2. Целые типы, переменные, константы 151
3.3. Основные операторы для работы с целочисленными величинами 155
3.4. Вещественные типы и класс Math 156
3.5. Правила явного и автоматического преобразования типа при работе с числовыми величинами 160
3.6. Оболочечные классы. Упаковка (boxing) и распаковка (unboxing) 162
3.7. Приоритет операторов 164
Краткие итоги по главе 165
Типичные ошибки 167
Задания 167

Глава 4. Работа с числами в языке Java 169
4.1. Двоичное представление целых чисел 169
Позиционные и непозиционные системы счисления 169
Двоичное представление положительных целых чисел 171
Двоичное представление отрицательных целых чисел. Дополнительный код 172
Сложение положительного и отрицательного чисел 173
Сложение отрицательных чисел 174
Проблемы целочисленной машинной арифметики. Целочисленное переполнение 174
Сложение положительных чисел 174
Умножение положительных чисел 175
Шестнадцатеричное представление целых чисел и перевод из одной системы счисления в другую 177
Преобразование чисел из системы с меньшим основанием в систему с большим основанием 178
Преобразование чисел из системы с большим основанием в систему с меньшим основанием 178
Преобразование чисел в системах счисления с кратными основаниями 179
4.2. Побитовые маски и сдвиги 180
4.3. Двоичное представление вещественных чисел 183
Двоичные дроби 183
Мантисса и порядок числа 183
Научная нотация записи вещественных чисел 185
Стандарт IEEE 754 представления чисел в формате с плавающей точкой 186
Краткие итоги по главе 190
Типичные ошибки 191
Задания 191

Глава 5. Управляющие конструкции 193
5.1. Составной оператор 193
5.2. Условный оператор if 194
5.3. Оператор выбора switch 198
5.4. Условное выражение ? : 199
5.5. Операторы инкремента ++ и декремента -- 200
5.6. Оператор цикла for 200
5.7. Ошибки при использовании вещественного счетчика цикла 202
5.8. Эффективная организация циклов при вычислениях в формате с плавающей точкой 205
5.9. Особенности целочисленных вычислений — организация циклов, приоритет операторов и арифметическое переполнение 210
5.10. Оператор цикла while — цикл с предусловием 215
5.11. Оператор цикла do...while — цикл с постусловием 217
5.12. Операторы прерывания continue, break, return, System.exit 217
Краткие итоги по главе 221
Типичные ошибки 222
Задания 222

Глава 6. Начальные сведения об объектном программировании 223
6.1. Наследование и полиморфизм 223
6.2. Функции. Модификаторы. Передача примитивных типов в функции 231
6.3. Локальные и глобальные переменные. Модификаторы доступа и правила видимости. Ссылка this 235
6.4. Передача ссылочных типов в функции. Проблема изменения ссылки внутри подпрограммы 238
6.5. Наследование. Суперклассы и подклассы. Переопределение методов 245
6.6. Наследование и правила видимости. Зарезервированное слово super 250
6.7. Статическое и динамическое связывание методов. Полиморфизм 252
6.8. Базовый класс Object 254
6.9. Конструкторы. Зарезервированные слова super и this. Блоки инициализации 256
6.10. Удаление неиспользуемых объектов и метод finalize. Проблема деструкторов для сложно устроенных объектов 260
6.11. Перегрузка методов 261
6.12. Правила совместимости ссылочных типов как основа использованияполиморфного кода. Приведение и проверка типов 263
Краткие итоги по главе 267
Типичные ошибки 268
Задания 269

Глава 7. UML-диаграммы. Прямое и обратное проектирование. Рефакторинг 271
7.1. UML-диаграммы 271
7.2. Структура окон проектов с UML-диаграммами 279
7.3. Панель инструментов проектов с UML-диаграммами 282
7.4. Прямое проектирование (Forward engineering) — построение кода классов по UMLдиаграммам 286
7.5. Обратное проектирование (Reverse engineering) — построение UML-диаграмм по разработанным классам 293
7.6. Рефакторинг 298
Первый случай — переименование элементов программы 301
Второй случай — перемещение класса 303
Третий случай — копирование класса для его дальнейшей модификации 303
Четвертый случай — безопасное удаление элемента программы 304
Пятый случай — изменение списка параметров метода 304
Шестой случай — инкапсуляция полей данных 305
Краткие итоги по главе 306
Типичные ошибки 306
Задания 307

Глава 8. Важнейшие объектные типы 308
8.1. Массивы 308
8.2. Коллекции, списки, итераторы 314
8.3. Перебор в цикле элементов коллекций. Оператор цикла for-each 318
8.4. Работа со строками в Java. Строки как объекты. Классы String, StringBuffer и StringBuilder 319
8.5. Типы-перечисления (enum) 333
8.6. Работа с датами и временем. Класс GregorianCalendar 335
8.7. Работа с графикой и графическим пользовательским интерфейсом 338
Код визуализации и код бизнес-логики приложения 338
Графические примитивы 339
Пример метода, работающего с графикой 341
8.8. Исключительные ситуации 345
Обработка исключительных ситуаций 345
Иерархия исключительных ситуаций 348
Объявление типа исключительной ситуации и оператор throw 351
Объявление метода, который может возбуждать исключительную ситуацию.Зарезервированное слово throws 352
8.9. Работа с файлами и папками 355
Работа с файлами и папками с помощью объектов типа File 356
Выбор файлов и папок с помощью файлового диалога 359
Работа с потоками ввода/вывода 364
Краткие итоги по главе 372
Типичные ошибки 373
Задания 374

Глава 9. Интерфейсы и композиция 375
9.1. Проблемы множественного наследования классов. Интерфейсы 375
9.2. Отличия интерфейсов от классов. Проблемы наследования интерфейсов 378
9.3. Пример работы с интерфейсами 380
9.4. Композиция — еще одна альтернатива множественному наследованию 383
Краткие итоги по главе 385
Типичные ошибки 385
Задания 385

Глава 10. Многопоточное программирование и многоядерные системы 387
10.1. Потоки выполнения (threads) и синхронизация 387
10.2. Преимущества и проблемы при работе с потоками выполнения 388
10.3. Синхронизация по ресурсам и событиям 389
Синхронизация по ресурсам 389
Синхронизация по событиям 391
10.4. Класс Thread и интерфейсы Runnable и Callable. Создание и запуск потока выполнения 392
10.5. Поля и методы, заданные в классе Thread 394
10.6. Работа многопоточных приложений в многопроцессорных и многоядерных системах 396
Причины перехода к многопроцессорным и многоядерным системам 396
Пример многопоточной программы 398
Работа многопоточного приложения на многоядерном компьютере 406
10.7. Синхронизация на основе интерфейсов Lock и Condition 408
Интерфейс Lock 408
Интерфейс Condition 412
Краткие итоги по главе 414
Типичные ошибки 415
Задания 416

Глава 11. Введение в сетевое программирование 417
11.1. Краткая справка по языку HTML 417
Система WWW и язык HTML 417
Теги и их атрибуты 419
Математические и специальные символы, греческие буквы 425
11.2. Апплеты 427
Структура апплета 427
Примеры апплетов. Аннотация @Override 429
Создание проекта с апплетами 434
Редактор HTML-документов, стилей CSS и кода 437
11.3. 442
Создание сервлета и конфигурирование сервера 444
Локализация сервлетов — работа с языковыми 451
11.4. Технология JSP — Java Server Pages 456
11.5. Технология JSTL — JSP Standard Tag Library 460
Краткие итоги по главе462
Типичные ошибки 463
Задания 464

Глава 12. Вложенные классы 465
12.1. Виды вложенных классов 465
12.2. Статические (static) вложенные классы и интерфейсы 466
12.3. Внутренние (inner) классы 468
12.4. Локальные (local) классы 471
12.5. Анонимные (anonimous) классы и обработчики событий 471
12.6. Анонимные (anonimous) классы и слушатели событий (listeners) 472
Краткие итоги по главе 475
Типичные ошибки 477
Задания 477

Глава 13. Приложение с графическим интерфейсом — DesktopApplication 478
13.1. Структура простой заготовки DesktopApplication 478
13.2. Исходный код класса DesktopApplication 480
13.3. Исходный код класса DesktopApplicationView 482
13.4. Конструктор главной формы приложения. Ресурсы приложения и концепция управляющих синглетонов 486
13.5. Аннотация @Action и показ справки 491
13.6. Концепция управляющего объекта-модели. Модель TaskMonitor, класс Task и обработчик propertyChange 493
13.7. Создание задачи типа Task. Назначение иконок и добавление изображений 500
13.8. Локализация приложения 505
13.9. Измерение времени и досрочное прекращение выполнения задания 510
13.10. Работа с межпрограммным буфером обмена — Сlipboard 511
Копирование строк и изображений из буфера обмена в программу 511
Копирование строк из программы в буфер обмена. Класс StringSelection 514
Копирование изображений из программы в буфер обмена. Создание класса ImageSelection 515
13.11. Многопоточная система вычислений и индикации 519
Краткие итоги по главе 523
Типичные ошибки 524
Задания 525

Глава 14. Программирование мобильных телефонов 526
14.1. Спецификация Java Micro Edition. Конфигурации и профили. Мидлеты 526
14.2. Создание приложений для мобильных устройств 527
14.3. Дизайнер пользовательского интерфейса мидлета 533
14.4. Исходный код мидлета Hello, World! 538
14.5. Заготовка мидлета "Крестики-нолики" 547
14.6. Код бизнес-логики мидлета 556
14.7. Создание собственного компонента, являющегося наследником TableItem, и мидлета на его основе. Создание библиотеки 563
14.8. Запуск мидлета "Крестики-нолики" на реальном телефоне 571
14.9. Пример мидлета с переключением экрана и списком выбора 573
14.10. Примеры приложений для мобильных телефонов, поставляемые со средой NetBeans 574
Краткие итоги по главе 577
Типичные ошибки 578
Задания 578

Глава 15. Компонентное программирование 579
15.1. Компонентная архитектура JavaBeans 579
15.2. Создание компонента в NetBeans 6.5 580
15.3. Пример создания компонента в NetBeans 6.5 — панель с заголовком 584
15.4. Добавление в компонент новых свойств 588
15.5. Добавление в компонент новых событий 590
Краткие итоги по главе 593
Типичные ошибки 594
Задания 595

Глава 16. Платформо-зависимые методы и модуль C/C++ Pack 596
16.1. Использование динамических библиотек. Объявление платформо-зависимых (native) методо 596
16.2. Интерфейс JNI (Java Native Interface) взаимодействия Java с C/C++. Соответствие типов Java и C++ 597
16.3. Пакет C/C++ Pack. Подключение компиляторов C++, C и библиотек 603
16.4. Создание приложений C++ и C 612
16.5. Примеры приложений с native-методами 616
Первый этап. Создание исходного кода Java для native-методов 617
Второй этап. Генерация h-файла заголовка C++, содержащего декларацию методов 617
Третий этап. Написание на C++ реализации методов, заголовки которых заданы в сгенерированном файле jnipackage_JniMultiply.h 619
Четвертый этап. Компиляция кода C++ в динамическую библиотеку (DLL) 620
Пятый этап. Запуск приложения вместе с DLL в NetBeans 621
Шестой этап. Распространение приложения вместе с DLL 621
Краткие итоги по главе 625
Типичные ошибки 626
Задания 626

Глава 17. Отладка, тестирование и профилирование программ 627
17.1. Отладка приложений в среде NetBeans 627
17.2. Команды режима пошагового выполнения 631
17.3. Пример отладки неправильно работающего приложения 638
17.4. Принцип "презумпции виновности" и тестирование классов 642
17.5. Профилирование приложений 656
17.6. Профилирование отдельных методов 664
17.7. Настройка профилировщика "на лету". Точки профилирования 670
17.8. Нахождение проблем с использованием памяти — телеметрия 678
17.9. Профилирование использования памяти классами 681
Краткие итоги по главе 687
Типичные ошибки 688
Задания 688

Заключение 689
Приложение. Описание прилагаемого DVD 691
Техническая литература 698
Основная 698
Дополнительная 698
Предметный указатель 699

 

Скачать книгу бесплатно18,3 мб. pdf