Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Книги по Java и Eclipse / Java / Java.Промышленное программирование

.pdf
Скачиваний:
3299
Добавлен:
03.06.2014
Размер:
7.25 Mб
Скачать

И.Н. Блинов, В.С. Романчик

Java.

ПРОМЫШЛЕННОЕ

ПРОГРАММИРОВАНИЕ

Практическое пособие

Минск «УниверсалПресс»

2007

УДК 004.434 ББК 32.973.26-018.2

Б69

А в т о р ы :

доцент кафедры Численных методов и программирования БГУ, кандидат физико-математических наук И.Н. Блинов,

доцент, зав. кафедрой Численных методов и программирования БГУ, кандидат физико-математических наук В.С. Романчик

Р е ц е н з е н т ы :

доцент, кандидат физико-математических наук И.М. Галкин, доцент, кандидат технических наук А.Е. Люлькин

Блинов, И.Н.

Б69 Java. Промышленное программирование : практ. пособие / И.Н. Блинов, В.С. Романчик. – Минск : УниверсалПресс, 2007. – 704 с.

ISBN 978-985-6699-63-7

Пособие предназначено для программистов, начинающих и продолжающих изучение технологий Java SE 6 и J2EE. В его первой части рассматриваются основы языка Java и концепции объектно-ориентированного программирования. Во второй части изложены важнейшие аспекты применения библиотек классов языка Java, включая файлы, коллекции, сетевые и многопоточные приложения, а также взаимодействие с ХМL. В третьей части приведены основы программирования распределенных информационных систем с применением сервлетов, JSP, баз данных

исобственных тегов разработчика.

Вконце каждой главы даются тестовые вопросы по материалу главы и задания для выполнения. В приложениях приведены дополнительные материалы, относящиеся к использованию HTML, XML, JavaScript, а также краткое описание популярных технологий Struts и Hibernate для разработки распределенных систем, объединяющих возможности J2EE и XML.

УДК 004.434 ББК 32.973.26-018.2

© Блинов И.Н., Романчик В.С., 2007

ISBN 978-985-6699-63-7

© Оформление. УП «УниверсалПресс», 2007

 

КРАТКОЕ СОДЕРЖАНИЕ

 

Предисловие ...............................................................................................................

10

 

Часть 1. ОСНОВЫ ЯЗЫКА JAVA

 

Глава 1. ВВЕДЕНИЕ В КЛАССЫ И ОБЪЕКТЫ .................................................

11

Глава 2. ТИПЫ ДАННЫХ И ОПЕРАТОРЫ ........................................................

27

Глава 3.

КЛАССЫ ..................................................................................................

50

Глава 4. НАСЛЕДОВАНИЕ И ПОЛИМОРФИЗМ ..............................................

78

Глава 5.

ПРОЕКТИРОВАНИЕ КЛАССОВ .........................................................

105

Глава 6. ИНТЕРФЕЙСЫ И ВНУТРЕННИЕ КЛАССЫ ......................................

139

 

Часть 2. ИСПОЛЬЗОВАНИЕ КЛАССОВ И БИБЛИОТЕК

 

Глава 7.

ОБРАБОТКА СТРОК .............................................................................

160

Глава 8. ИСКЛЮЧЕНИЯ И ОШИБКИ ...............................................................

190

Глава 9.

ФАЙЛЫ. ПОТОКИ ВВОДА/ВЫВОДА ................................................

205

Глава 10.

КОЛЛЕКЦИИ .........................................................................................

229

Глава 11.

ГРАФИЧЕСКИЕ ИНТЕРФЕЙСЫ ПОЛЬЗОВАТЕЛЯ ........................

259

Глава 12.

СОБЫТИЯ ..............................................................................................

275

Глава 13.

ЭЛЕМЕНТЫ КОМПОНОВКИ И УПРАВЛЕНИЯ .............................

287

Глава 14.

ПОТОКИ ВЫПОЛНЕНИЯ ...................................................................

328

Глава 15.

СЕТЕВЫЕ ПРОГРАММЫ ....................................................................

350

Глава 16.

XML & JAVA .........................................................................................

364

Часть 3. ТЕХНОЛОГИИ РАЗРАБОТКИ WEB-ПРИЛОЖЕНИЙ

 

Глава 17.

ВВЕДЕНИЕ В СЕРВЛЕТЫ И JSP ........................................................

414

Глава 18.

СЕРВЛЕТЫ ............................................................................................

426

Глава 19.

JAVA SERVER PAGES .........................................................................

446

Глава 20.

JDBC .......................................................................................................

479

Глава 21. CЕССИИ, СОБЫТИЯ И ФИЛЬТРЫ ....................................................

504

Глава 22.

ПОЛЬЗОВАТЕЛЬСКИЕ ТЕГИ .............................................................

523

УКАЗАНИЯ И ОТВЕТЫ .......................................................................................

536

Приложение 1. НTML .............................................................................................

552

Приложение 2. JavaScript ........................................................................................

574

Приложение 3. UML ...............................................................................................

599

Приложение 4. Базы данных и язык SQL ..............................................................

608

Приложение 5. Hibernate .............................................................................................

625

Приложение 6. Struts ...............................................................................................

645

Приложение 7. Журнал сообщений (Logger) ........................................................

667

Приложение 8. Apache Ant .....................................................................................

676

Приложение 9. Портлеты .......................................................................................

690

Список рекомендуемой литературы и источников ...............................................

703

 

СОДЕРЖАНИЕ

 

Предисловие ...............................................................................................................

10

 

Часть 1. ОСНОВЫ ЯЗЫКА JAVA

 

Глава 1.

ВВЕДЕНИЕ В КЛАССЫ И ОБЪЕКТЫ .............................................

11

 

Основные понятия ООП ...................................................................

11

 

Язык Java ...........................................................................................

14

 

Нововведения версий 5.0 и 6.0 ........................................................

15

 

Простое приложение ........................................................................

16

 

Классы и объекты .............................................................................

19

 

Сравнение объектов ..........................................................................

20

 

Консоль ..............................................................................................

21

 

Простой апплет .................................................................................

23

 

Задания к главе 1 ...............................................................................

24

 

Тестовые задания к главе 1 ..............................................................

25

Глава 2.

ТИПЫ ДАННЫХ И ОПЕРАТОРЫ .....................................................

27

 

Базовые типы данных и литералы ...................................................

27

 

Документирование кода ...................................................................

29

 

Операторы .........................................................................................

31

 

Классы-оболочки ..............................................................................

34

 

Операторы управления .....................................................................

37

 

Массивы .............................................................................................

39

 

Класс Маth .........................................................................................

43

 

Управление приложением ................................................................

44

 

Задания к главе 2 ...............................................................................

47

 

Тестовые задания к главе 2 ..............................................................

49

Глава 3.

КЛАССЫ ..................................................................................................

50

 

Переменные класса и константы .....................................................

50

 

Ограничение доступа ........................................................................

51

 

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

52

 

Методы ..............................................................................................

54

 

Статические методы и поля .............................................................

55

 

Модификатор final ............................................................................

56

 

Абстрактные методы ........................................................................

57

 

Модификатор native ..........................................................................

57

 

Модификатор synchronized ..............................................................

57

 

Логические блоки .............................................................................

58

 

Перегрузка методов ..........................................................................

59

 

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

60

 

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

65

 

Методы с переменным числом параметров ....................................

65

 

Перечисления ....................................................................................

67

 

Аннотации .........................................................................................

70

 

Задания к главе 3 ...............................................................................

72

 

Тестовые задания к главе 3 ..............................................................

76

Глава 4. НАСЛЕДОВАНИЕ И ПОЛИМОРФИЗМ ...........................................

78

 

Наследование ....................................................................................

78

 

Использование final ..........................................................................

81

 

Использование super и this ...............................................................

82

 

Переопределение методов и полиморфизм ....................................

83

 

Методы подставки ............................................................................

86

 

Полиморфизм и расширяемость ......................................................

86

 

Статические методы и полиморфизм ..............................................

88

 

Абстракция и абстрактные классы ..................................................

89

 

Класс Object .......................................................................................

91

 

Клонирование объектов ...................................................................

95

 

“Сборка мусора” и освобождение ресурсов ...................................

97

 

Задания к главе 4 ...............................................................................

99

 

Тестовые задания к главе 4 .............................................................

102

Глава 5.

ПРОЕКТИРОВАНИЕ КЛАССОВ ......................................................

105

 

Шаблоны проектирования GRASP .................................................

105

 

Шаблон Expert ..................................................................................

105

 

Шаблон Creator ................................................................................

107

 

Шаблон Low Coupling .....................................................................

108

 

Шаблон High Cohesion ....................................................................

111

 

Шаблон Controller ............................................................................

113

 

Шаблоны проектирования GoF ......................................................

114

 

Порождающие шаблоны .................................................................

115

 

Шаблон Factory ................................................................................

115

 

Шаблон AbstractFactory ...................................................................

117

 

Шаблон Builder ................................................................................

120

 

Шаблон Singleton .............................................................................

122

 

Структурные шаблоны ....................................................................

123

 

Шаблон Bridge .................................................................................

123

 

Шаблон Decorator ............................................................................

125

 

Шаблоны поведения ........................................................................

127

 

Шаблон Command ............................................................................

128

 

Шаблон Strategy ...............................................................................

131

 

Шаблон Observer ..............................................................................

133

 

Антишаблоны проектирования ......................................................

135

 

Задания к главе 5 ..............................................................................

137

 

Тестовые задания к главе 5 .............................................................

137

Глава 6.

ИНТЕРФЕЙСЫ И ВНУТРЕННИЕ КЛАССЫ .................................

139

 

Интерфейсы ......................................................................................

139

 

Пакеты ..............................................................................................

142

 

Статический импорт ........................................................................

145

 

Внутренние классы ..........................................................................

146

 

Внутренние (inner) классы ..............................................................

147

 

Вложенные (nested) классы .............................................................

152

 

Анонимные (anonymous) классы ....................................................

153

 

Задания к главе 6 ..............................................................................

156

 

Тестовые задания к главе 6 .............................................................

158

 

Часть 2. ИСПОЛЬЗОВАНИЕ КЛАССОВ И БИБЛИОТЕК

 

Глава 7.

ОБРАБОТКА СТРОК ...........................................................................

160

 

Класс String .......................................................................................

160

 

Классы StringBuilder и StringBuffer ................................................

165

 

Форматирование строк ....................................................................

167

 

Лексический анализ текста .............................................................

173

 

Регулярные выражения ...................................................................

174

 

Интернационализация текста .........................................................

178

 

Интернационализация чисел ...........................................................

181

 

Интернационализация дат ...............................................................

182

 

Задания к главе 7 ..............................................................................

184

 

Тестовые задания к главе 7 .............................................................

188

Глава 8.

ИСКЛЮЧЕНИЯ И ОШИБКИ ............................................................

190

 

Иерархия и способы обработки ......................................................

190

 

Оператор throw .................................................................................

195

 

Ключевое слово finally ....................................................................

197

 

Собственные исключения ...............................................................

198

 

Наследование и исключения ...........................................................

199

 

Отладочный механизм assertion .....................................................

201

 

Задания к главе 8 ..............................................................................

202

 

Тестовые задания к главе 8 .............................................................

203

Глава 9.

ФАЙЛЫ. ПОТОКИ ВВОДА/ВЫВОДА .............................................

205

 

Класс File ..........................................................................................

205

 

Байтовые и символьные потоки ввода/вывода ..............................

207

 

Предопределенные потоки ..............................................................

212

 

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

214

 

Консоль .............................................................................................

218

 

Класс Scanner ...................................................................................

219

 

Архивация ........................................................................................

222

 

Задания к главе 9 ..............................................................................

226

 

Тестовые задания к главе 9 .............................................................

227

Глава 10.

КОЛЛЕКЦИИ ......................................................................................

229

 

Общие определения .........................................................................

229

 

Списки ..............................................................................................

231

 

Deque .................................................................................................

239

 

Множества ........................................................................................

240

 

Карты отображений .........................................................................

245

 

Унаследованные коллекции ............................................................

249

 

Класс Collections ..............................................................................

250

 

Класс Arrays .....................................................................................

253

 

Задания к главе 10 ............................................................................

255

 

Тестовые задания к главе 10 ...........................................................

257

Глава 11.

ГРАФИЧЕСКИЕ ИНТЕРФЕЙСЫ ПОЛЬЗОВАТЕЛЯ ................

259

 

Основы оконной графики ................................................................

259

 

Апплеты ............................................................................................

261

 

Фреймы .............................................................................................

270

 

Задания к главе 11 ............................................................................

272

 

Тестовые задания к главе 11 ...........................................................

273

Глава 12.

СОБЫТИЯ ............................................................................................

275

 

Основные понятия ...........................................................................

275

 

Классы-адаптеры .............................................................................

281

 

Задания к главе 12 ............................................................................

284

 

Тестовые задания к главе 12 ...........................................................

285

Глава 13.

ЭЛЕМЕНТЫ КОМПОНОВКИ И УПРАВЛЕНИЯ .......................

287

 

Менеджеры размещения .................................................................

287

 

Элементы управления .....................................................................

293

 

Визуальные компоненты JavaBeans ...............................................

318

 

Задания к главе 13 ............................................................................

325

 

Тестовые задания к главе 13 ...........................................................

326

Глава 14.

ПОТОКИ ВЫПОЛНЕНИЯ ................................................................

328

 

Класс Thread и интерфейс Runnable ...............................................

328

 

Жизненный цикл потока .................................................................

329

 

Управление приоритетами и группы потоков ...............................

330

 

Управление потоками ......................................................................

331

 

Потоки-демоны ................................................................................

333

 

Потоки в графических приложениях .............................................

335

 

Методы synchronized .......................................................................

337

 

Инструкция synchronized .................................................................

340

 

Состояния потока .............................................................................

342

 

Потоки в J2SE 5 ................................................................................

344

 

Задания к главе 14 ............................................................................

347

 

Тестовые задания к главе 14 ...........................................................

348

Глава 15.

СЕТЕВЫЕ ПРОГРАММЫ ................................................................

350

 

Поддержка Интернет .......................................................................

350

 

Сокетные соединения по протоколу TCP/IP .................................

354

 

Многопоточность .............................................................................

356

 

Датаграммы и протокол UDP .........................................................

359

 

Задания к главе 15 ............................................................................

361

 

Тестовые задания к главе 15 ...........................................................

362

Глава 16.

XML & JAVA ........................................................................................

364

 

DTD ...................................................................................................

367

 

Схема XSD ........................................................................................

370

 

XML-анализаторы ............................................................................

380

 

SAX-анализаторы ............................................................................

381

 

Древовидная модель ........................................................................

388

 

Xerces ................................................................................................

388

 

JDOM ................................................................................................

392

 

StAX ..................................................................................................

399

 

XSL ....................................................................................................

404

 

Элементы таблицы стилей ..............................................................

407

 

Задания к главе 16 ............................................................................

408

 

Тестовые задания к главе 16 ...........................................................

412

Часть 3. ТЕХНОЛОГИИ РАЗРАБОТКИ WEB-ПРИЛОЖЕНИЙ

 

Глава 17.

ВВЕДЕНИЕ В СЕРВЛЕТЫ И JSP ....................................................

414

 

Первый сервлет ................................................................................

414

 

Запуск контейнера сервлетов и размещение проекта ...................

416

 

Первая JSP ........................................................................................

419

 

Взаимодействие сервлета и JSP ......................................................

421

 

Задания к главе 17 ............................................................................

424

 

Тестовые задания к главе 17 ...........................................................

424

Глава 18.

СЕРВЛЕТЫ ..........................................................................................

426

 

Интерфейс ServletContext ................................................................

426

 

Интерфейс ServletConfig .................................................................

427

 

Интерфейсы ServletRequest и HttpServletRequest ..........................

428

 

Интерфейсы ServletResponse и HttpServletResponse .....................

432

 

Обработка запроса ...........................................................................

432

 

Многопоточность .............................................................................

436

 

Электронная почта ...........................................................................

439

 

Задания к главе 18 ............................................................................

443

 

Тестовые задания к главе 18 ...........................................................

444

Глава 19.

JAVA SERVER PAGES .......................................................................

446

 

Стандартные элементы action .........................................................

447

 

JSP-документ ....................................................................................

449

 

JSTL ...................................................................................................

451

 

Неявные объекты .............................................................................

453

 

JSTL core............................................................................................

454

 

JSTL fmt ...........................................................................................

458

 

JSTL sql .............................................................................................

461

 

JSTL xml ...........................................................................................

461

 

Включение ресурсов ........................................................................

462

 

Обработка ошибок ...........................................................................

463

 

Извлечение значений полей ............................................................

465

 

Технология взаимодействия JSP и сервлета ..................................

467

 

Задания к главе 19 ............................................................................

476

 

Тестовые задания к главе 19 ...........................................................

477

Глава 20.

JDBC .......................................................................................................

479

 

Драйверы, соединения и запросы ...................................................

479

 

СУБД MySQL ...................................................................................

481

 

Простое соединение и простой запрос ...........................................

482

 

Метаданные ......................................................................................

485

 

Подготовленные запросы и хранимые процедуры .......................

486

 

Транзакции .......................................................................................

489

 

Точки сохранения ............................................................................

493

 

Пул соединений ...............................................................................

495

 

Задания к главе 20 ............................................................................

497

 

Тестовые задания к главе 20 ...........................................................

502

Глава 21. CЕССИИ, СОБЫТИЯ И ФИЛЬТРЫ ...............................................

504

Сеанс (сессия) ..................................................................................

504

Cookie ................................................................................................

509

Обработка событий ..........................................................................

512

Фильтры ............................................................................................

516

Задания к главе 21 ............................................................................

519

Тестовые задания к главе 21 ...........................................................

521

Глава 22. ПОЛЬЗОВАТЕЛЬСКИЕ ТЕГИ ........................................................

523

Простой тег .......................................................................................

523

Тег с атрибутами ..............................................................................

526

Тег с телом ........................................................................................

528

Элементы action ...............................................................................

531

Задания к главе 22 ............................................................................

533

Тестовые задания к главе 22 ...........................................................

534

УКАЗАНИЯ И ОТВЕТЫ .......................................................................................

536

Приложение 1. HTML .............................................................................................

552

Приложение 2. JavaScript ........................................................................................

574

Приложение 3. UML ...............................................................................................

599

Приложение 4. Базы данных и язык SQL ..............................................................

608

Приложение 5. Hibernate .............................................................................................

625

Приложение 6. Struts ...............................................................................................

645

Приложение 7. Журнал сообщений (Logger) ........................................................

667

Приложение 8. Apache Ant .....................................................................................

676

Приложение 9. Портлеты .......................................................................................

690

Список рекомендуемой литературы и источников ...............................................

703