Думай на Java

       

Думай на Java

Множественные нити процессов
Отзывчивый пользовательский интерфейс

Наследование от процесса
Использование процессов для пользовательского интерфейса
Объединение процесса с основным классом
Создание множества процессов

Процессы демоны
Использование ограниченных ресурсов
Неправильный доступ к ресурсам


Как Java получает доступ к ресурсам
Синхронизация счетчиков
Эффективность синхронизации
Повторное обращение к JavaBeans

Блокировки
Установка блокировки
Засыпание
Приостановка и возобновление выполнения
Ожидание и уведомление
Блокировка во время операций ввода/вывода

Тестирование
Мертвая блокировка
Запрещение stop( ), suspend( ), resume( ), и destroy( ) в Java 2
Приоритеты
Чтение и установка приоритетов
Группы процессов

Управление группами процессов
Повторное изучение Runnable
Когда процессов слишком много

Резюме
Упражнения

Думай на Java

Распределенные вычисления
Сетевое программирование
Идентификация машины
Сервера и клиенты
Тестирование программ без наличия сети
Порт: уникальное место внутри машины
Сокеты

Простой пример сервера и клиента
Обслуживание нескольких клиентов
Дейтаграммы
Использование ссылок URL внутри апплета
Чтение файла с сервера
Дальнейшее сетевое программирование
Java Database Connectivity (JDBC)
Получение примера для работы
Шаг 1: Поиск JDBC Драйвера

Шаг 2: Конфигурирование базы данных
Шаг 3: Проверка конфигурации
Шаг 4: Генерация вашего SQL запроса
Шаг 5: Изменеие и вставка в ваш запрос
GUI версия программы поиска
Почему JDBC API выглядит так сложно
Более изощренный пример

Сервлеты
Основы сервлетов
Сервлеты и множественные процессы
Управление сессиями с помощью сервлетов
Класс Cookie

Класс Session
Запуск примеров сервлетов
Java Server Pages
Неявные объекты
Директивы JSP
Элемены JSP скриптов

Извлечение полей и значений
Атрибуты JSP страницы и границы видимости
Управление сессиями в JSP
Создание и изменение cookies
Резюме о JSP
RMI (Удаленный вызов методов)
Удаленный интерфейс
Реализация удаленного интерфейса

Регистрация
Создание якорей и скелетов
Использование удаленных объектов
CORBA
Принципы CORBA
Язык Определения Интерфейсов CORBA(CORBA Interface Definition Language) - IDL
Служба Указания Имен
Пример
Написание исходного кода IDL

Реализация сервера и клиента
Некоторые службы CORBA
Активация процесса указания имен
Активация сервера и клиента
Java Апплеты и CORBA
CORBA против RMI
Enterprise JavaBeans
JavaBeans против EJB

Спецификация EJB
EJB компоненты
EJB контейнер и сервер
Java Naming и Directory Interface (JNDI)
Java Transaction API/Java Transaction Service (JTA/JTS)
CORBA и RMI/IIOP
Составные части EJB компонента
Enterprise Bean
Домашний интерфейс

Описатель развертывания
EJB-Jar файл
EJB операции
Типы EJB
Сессионный компонент
Сущностные компоненты
Разработка EJB

Резюме о EJB
Jini: распределенные сервисы
В контексте Jini
Что такое Jini?
Как работает Jini
Процесс обнаружения
Процесс объединения
Процесс поиска
Разделение интерфейса и реализации
Абстрагирование распределенной системы

Резюме

Думай на Java

Приложение А Передача и возврат объектов.
Манипуляции с ссылками
Дублирующие ссылки (aliacing)
Создание локальных копий объектов
Передача параметров "по значению"

Клонирование объектов
Добавление клонируемости в класс
Успешное клонирование
Функции метода Object.clone()
Клонирование составных объектов
Глубокое копирование при помощи ArrayList
Глубокое копирование при помощи сериализации (serialization)

Обеспечение клонируемости объектов-наследников
Почему используется такая странная конструкция?
Управление клонируемостью объектов
Конструкторы копирования

Классы только для чтения
Создание классов только для чтения
Недостаток неизменных классов
Immutable строки
Классы String и StringBuffer

Особенности строк
Итоги
Упражнения
B: Java Native Interface (JNI)
Вызов собственных методов
Javah: генератор заголовочных файлов на С
Искажение имен и сигнатура функций
Реализация вашей DLL
Доступ к JNI функциям: аргументы JNIEnv

Доступ к Java строкам
Передача и использование Java объектов
Передача и использование Java объектов - 2
JNI и исключения в Java
JNI и нити процесса
Использование существующего кода
Дополнительная информация
C: Руководящие принципы программирования на Java
Проектировка

Реализация
Программное обеспечение
Книги
Анализ и проектировка
Python
Мой собственный список книг

Содержание раздела