На главную | Где купить | Авторам и заказчикам | Вакансии | Реклама | Издательство | Каталог | Статьи наших авторов | Контакты | Прайс листы

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

Автор Монахов В.
Название Язык программирования Java и среда NetBeans. 2-е изд.
Серия Внесерийные книги
ISBN 978-5-9775-0424-9
Формат 70*100 1/16
Объем 720
Тематика
Оптовая цена
    Вернуться к описанию книги

Полное содержание

Оглавление Введение 11

Глава 1. Общие представления о языке Java

15
1.1. Java и другие языки программирования. Системное и прикладное программирование 15
1.2. Виртуальная Java-машина, байт-код, JIT-компиляция. Категории программ, написанных на языке Java 20
1.3. Алфавит языка Java. Десятичные и шестнадцатеричные цифры и целые числа. Зарезервированные слова 26
Алфавит языка Java 27
Десятичные и шестнадцатеричные цифры и целые числа 27
Зарезервированные слова и литералы языка Java 29
1.4. Управляющие последовательности. Символы Unicode. Специальные символы 30
Управляющие последовательности 30
Управляющие последовательности — символы формирования текста 30
Управляющие последовательности — символы Unicode 30
Простые специальные символы 31
Составные специальные символы 32
1.5. Идентификаторы. Переменные и типы. Примитивные и ссылочные типы 33
1.6. Процедурное и объектно-ориентированное программирование. Инкапсуляция 37
1.7. Работа со ссылочными переменными. Сборка мусора 41
1.8. Проекты. Пакеты. Уровни видимости классов. Импорт классов 46
1.9. Базовые пакеты и классы Java 50
1.10. Технологии Java, .NET, ASP, PHP 53
1.11. Среды разработки NetBeans, Eclipse, JDeveloper, JBuilder, IntelliJ IDEA 58
NetBeans 6.5 59
Eclipse 3.4.1 (Ganimede) 61
JDeveloper 11 63
JBuilder 2008 66
IntelliJ IDEA 7.0.4 68
Общий итог сравнения сред разработки 68
Краткие итоги по главе 69
Типичные ошибки 72
Задания 72

Глава 2. Среда NetBeans 6.5

73
2.1. Установка JDK 6 73
2.2. Установка среды NetBeans 6.5 77
2.3. Создание в NetBeans простейшего приложения Java 85
2.4. Компиляция файлов проекта и запуск приложения. Jar-файлы 91
2.5. Структура проекта NetBeans 94
2.6. Создание в NetBeans приложения Java с графическим интерфейсом 98
2.7. Редактор экранных форм 103
2.8. Свойства компонентов 109
2.9. Внешний вид приложения — технология Look and Feel 115
2.10. Ведение проектов 118
2.11. Редактирование меню экранной формы 120
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. Примитивные типы данных и операторы для работы с ними

151
3.1. Булевый (логический) тип 151
3.2. Целые типы, переменные, константы 152
3.3. Основные операторы для работы с целочисленными величинами 156
3.4. Вещественные типы и класс Math 157
3.5. Правила явного и автоматического преобразования типа при работе с числовыми величинами 161
3.6. Оболочечные классы. Упаковка (boxing) и распаковка (unboxing) 163
3.7. Приоритет операторов 165
Краткие итоги по главе 166
Типичные ошибки 168
Задания 168

Глава 4. Работа с числами в языке Java

171
4.1. Двоичное представление целых чисел 171
Позиционные и непозиционные системы счисления 171
Двоичное представление положительных целых чисел 173
Двоичное представление отрицательных целых чисел. Дополнительный код 175
Сложение положительного и отрицательного чисел 175
Сложение отрицательных чисел 176
Проблемы целочисленной машинной арифметики. Целочисленное переполнение 176
Сложение положительных чисел 176
Умножение положительных чисел 177
Шестнадцатеричное представление целых чисел и перевод из одной системы счисления в другую 179
Преобразование чисел из системы с меньшим основанием в систему с большим основанием 180
Преобразование чисел из системы с большим основанием в систему с меньшим основанием 181
Преобразование чисел в системах счисления с кратными основаниями 181
4.2. Побитовые маски и сдвиги 182
4.3. Двоичное представление вещественных чисел 185
Двоичные дроби 185
Мантисса и порядок числа 185
Научная нотация записи вещественных чисел 187
Стандарт IEEE 754 представления чисел в формате с плавающей точкой 188
Краткие итоги по главе 193
Типичные ошибки 194
Задания 194

Глава 5. Управляющие конструкции

197
5.1. Составной оператор 197
5.2. Условный оператор if 198
5.3. Оператор выбора switch 202
5.4. Условное выражение ...?... : ... 203
5.5. Операторы инкремента ++ и декремента -- 204
5.6. Оператор цикла for 204
5.7. Ошибки при использовании вещественного счетчика цикла 206
5.8. Эффективная организация циклов при вычислениях в формате с плавающей точкой 209
5.9. Особенности целочисленных вычислений — организация циклов, приоритет операторов и арифметическое переполнение 214
5.10. Оператор цикла while — цикл с предусловием 219
5.11. Оператор цикла do...while — цикл с постусловием 221
5.12. Операторы прерывания continue, break, return, System.exit 221
Краткие итоги по главе 225
Типичные ошибки 226
Задания 226

Глава 6. Начальные сведения об объектном программировании

227
6.1. Наследование и полиморфизм 227
6.2. Функции. Модификаторы. Передача примитивных типов в функции 236
6.3. Локальные и глобальные переменные. Модификаторы доступа и правила видимости. Ссылка this 239
6.4. Передача ссылочных типов в функции. Проблема изменения ссылки внутри подпрограммы 242
6.5. Наследование. Суперклассы и подклассы. Переопределение методов 249
6.6. Наследование и правила видимости. Зарезервированное слово super 255
6.7. Статическое и динамическое связывание методов. Полиморфизм 257
6.8. Базовый класс Object 259
6.9. Конструкторы. Зарезервированные слова super и this. Блоки инициализации 261
6.10. Удаление неиспользуемых объектов и метод finalize. Проблема деструкторов для сложно устроенных объектов 264
6.11. Перегрузка методов 265
6.12. Правила совместимости ссылочных типов как основа использования полиморфного кода. Приведение и проверка типов 268
Краткие итоги по главе 271
Типичные ошибки 273
Задания 274

Глава 7. UML-диаграммы. Прямое и обратное проектирование. Рефакторинг

275
7.1. UML-диаграммы 275
7.2. Структура окон проектов с UML-диаграммами 284
7.3. Панель инструментов проектов с UML-диаграммами 287
7.4. Прямое проектирование (Forward engineering) — построение кода классов по UML-диаграммам 291
7.5. Обратное проектирование (Reverse engineering) — построение UML-диаграмм по разработанным классам 298
7.6. Рефакторинг 304
Первый случай — переименование элементов программы 306
Второй случай — перемещение класса 308
Третий случай — копирование класса для его дальнейшей модификации 308
Четвертый случай — безопасное удаление элемента программы 309
Пятый случай — изменение списка параметров метода 309
Шестой случай — инкапсуляция полей данных 310
Краткие итоги по главе 311
Типичные ошибки 311
Задания 312

Глава 8. Важнейшие объектные типы

313
8.1. Массивы 313
8.2. Коллекции, списки, итераторы 319
8.3. Перебор в цикле элементов коллекций. Оператор цикла for-each 323
8.4. Работа со строками в Java. Строки как объекты. Классы String, StringBuffer и StringBuilder 324
8.5. Типы-перечисления (enum) 338
8.6. Работа с датами и временем. Класс GregorianCalendar 340
8.7. Работа с графикой и графическим пользовательским интерфейсом 343
Код визуализации и код бизнес-логики приложения 343
Графические примитивы 344
Пример метода, работающего с графикой 347
8.8. Исключительные ситуации 350
Обработка исключительных ситуаций 350
Иерархия исключительных ситуаций 353
Объявление типа исключительной ситуации и оператор throw 356
Объявление метода, который может возбуждать исключительную ситуацию. Зарезервированное слово throws 358
8.9. Работа с файлами и папками 361
Работа с файлами и папками с помощью объектов типа File 361
Выбор файлов и папок с помощью файлового диалога 365
Работа с потоками ввода/вывода 369
Краткие итоги по главе 377
Типичные ошибки 379
Задания 379

Глава 9. Интерфейсы и композиция

381
9.1. Проблемы множественного наследования классов. Интерфейсы 381
9.2. Отличия интерфейсов от классов. Проблемы наследования интерфейсов 384
9.3. Пример работы с интерфейсами 386
9.4. Композиция — еще одна альтернатива множественному наследованию 389
Краткие итоги по главе 391
Типичные ошибки 391
Задания 391

Глава

10
. Многопоточное программирование и многоядерные системы 393
10.1. Потоки выполнения (threads) и синхронизация 393
10.2. Преимущества и проблемы при работе с потоками выполнения 394
10.3. Синхронизация по ресурсам и событиям 395
Синхронизация по ресурсам 395
Синхронизация по событиям 397
10.4. Класс Thread и интерфейсы Runnable и Callable. Создание и запуск потока выполнения 398
10.5. Поля и методы, заданные в классе Thread 400
10.6. Работа многопоточных приложений в многопроцессорных и многоядерных системах 402
Причины перехода к многопроцессорным и многоядерным системам 402
Пример многопоточной программы 404
Работа многопоточного приложения на многоядерном компьютере 412
10.7. Синхронизация на основе интерфейсов Lock и Condition 414
Интерфейс Lock 414
Интерфейс Condition 418
Краткие итоги по главе 420
Типичные ошибки 421
Задания 422

Глава 11. Введение в сетевое программирование

423
11.1. Краткая справка по языку HTML 423
Система WWW и язык HTML 423
Теги и их атрибуты 425
Математические и специальные символы, греческие буквы 431
11.2. Апплеты 433
Структура апплета 433
Примеры апплетов. Аннотация @Override 436
Создание проекта с апплетами 440
Редактор HTML-документов, стилей CSS и кода JavaScript 443
11.3. Сервлеты 448
Создание сервлета и конфигурирование сервера приложений 450
Локализация сервлетов — работа с языковыми форматами 457
11.4. Технология JSP — Java Server Pages 462
11.5. Технология JSTL — JSP Standard Tag Library 467
Краткие итоги по главе 469
Типичные ошибки 470
Задания 470

Глава 12. Вложенные классы

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

Глава 13. Приложение с графическим интерфейсом — DesktopApplication

485
13.1. Структура простой заготовки DesktopApplication 485
13.2. Исходный код класса DesktopApplication 487
13.3. Исходный код класса DesktopApplicationView 489
13.4. Конструктор главной формы приложения. Ресурсы приложения и концепция управляющих синглетонов 493
13.5. Аннотация @Action и показ справки 498
13.6. Концепция управляющего объекта-модели. Модель TaskMonitor, класс Task и обработчик propertyChange 500
13.7. Создание задачи типа Task. Назначение иконок и добавление изображений 507
13.8. Локализация приложения 512
13.9. Измерение времени и досрочное прекращение выполнения задания 518
13.10. Работа с межпрограммным буфером обмена — Сlipboard 519
Копирование строк и изображений из буфера обмена в программу 519
Копирование строк из программы в буфер обмена. Класс StringSelection 521
Копирование изображений из программы в буфер обмена. Создание класса ImageSelection 523
13.11. Многопоточная система вычислений и индикации 527
Краткие итоги по главе 531
Типичные ошибки 532
Задания 532

Глава 14. Программирование мобильных телефонов

533
14.1. Спецификация Java Micro Edition. Конфигурации и профили. Мидлеты 533
14.2. Создание приложений для мобильных устройств 534
14.3. Дизайнер пользовательского интерфейса мидлета 540
14.4. Исходный код мидлета Hello, World! 546
14.5. Заготовка мидлета "Крестики-нолики" 555
14.6. Код бизнес-логики мидлета 564
14.7. Создание собственного компонента, являющегося наследником TableItem, и мидлета на его основе. Создание библиотеки 571
14.8. Запуск мидлета "Крестики-нолики" на реальном телефоне 579
14.9. Пример мидлета с переключением экрана и списком выбора 581
14.10. Примеры приложений для мобильных телефонов, поставляемые со средой NetBeans 582
Краткие итоги по главе 586
Типичные ошибки 587
Задания 587

Глава 15. Компонентное программирование

589
15.1. Компонентная архитектура JavaBeans 589
15.2. Создание компонента в NetBeans 6.5 590
15.3. Пример создания компонента в NetBeans 6.5 — панель с заголовком 594
15.4. Добавление в компонент новых свойств 598
15.5. Добавление в компонент новых событий 600
Краткие итоги по главе 603
Типичные ошибки 605
Задания 605

Глава 16. Платформо-зависимые методы и модуль C/C++ Pack

607
16.1. Использование динамических библиотек. Объявление платформо-зависимых (native) методов 607
16.2. Интерфейс JNI (Java Native Interface) взаимодействия Java с C/C++. Соответствие типов Java и C++ 608
16.3. Пакет C/C++ Pack. Подключение компиляторов C++, C и библиотек 614
16.4. Создание приложений C++ и C 624
16.5. Примеры приложений с native-методами 628
Первый этап. Создание исходного кода Java для native-методов 628
Второй этап. Генерация h-файла заголовка C++, содержащего декларацию методов 629
Третий этап. Написание на C++ реализации методов, заголовки которых заданы в сгенерированном файле jnipackage_JniMultiply.h 630
Четвертый этап. Компиляция кода C++ в динамическую библиотеку (DLL) 631
Пятый этап. Запуск приложения вместе с DLL в NetBeans 632
Шестой этап. Распространение приложения вместе с DLL 632
Краткие итоги по главе 637
Типичные ошибки 637
Задания 638

Глава 17. Отладка, тестирование и профилирование программ

639
17.1. Отладка приложений в среде NetBeans 639
17.2. Команды режима пошагового выполнения 643
17.3. Пример отладки неправильно работающего приложения 650
17.4. Принцип "презумпции виновности" и тестирование классов 654
17.5. Профилирование приложений 668
17.6. Профилирование отдельных методов 677
17.7. Настройка профилировщика "на лету". Точки профилирования 684
17.8. Нахождение проблем с использованием памяти — телеметрия 692
17.9. Профилирование использования памяти классами 695
Краткие итоги по главе 701
Типичные ошибки 702
Задания 702
Заключение 703
Описание прилагаемого компакт-диска 705
Литература 711
Предметный указатель 713


На главную | Где купить | Авторам | Вакансии | Реклама | Издательство | Каталог | Статьи наших авторов | Контакты
© 2001–2017 Издательство «БХВ-Петербург».
Все права защищены. Частичное или полное копирование текстов, слоганов и фотоизображений без письменного согласия Правообладателя запрещено.