Интерфейс JNI : руководство по программированию
Здесь можно купить книгу "Интерфейс JNI : руководство по программированию" в печатном или электронном виде. Также, Вы можете прочесть аннотацию, цитаты и содержание, ознакомиться и оставить отзывы (комментарии) об этой книге.
Место издания: Москва
ISBN: 978-5-97060-586-8
Страниц: 281
Артикул: 94895
Возрастная маркировка: 16+
Краткая аннотация книги "Интерфейс JNI"
В книге описывается интерфейс Java Native Interface (JNI) – интерфейс взаимодействия языка Java с нативным кодом, написанным на других языках. Она будет полезна программистам на Java, интересующимися вопросами интеграции кода, написанного на C и С++, в Java-приложение; внедрением виртуальной машины Java в С- и С++- приложения; реализация виртуальной машины Java; техническими вопросами организации взаимодействия между различными языками, в том числе имеющими отношение к работе со сборщиком мусора и многопоточности.
Издание предназначено разработчикам на языке Java различной квалификации, желающими использовать в своих программах всю мощь нативного кода, написанного на других языках.
Содержание книги "Интерфейс JNI : руководство по программированию"
Предисловие
Часть I. Введение и учебный материал
Глава 1. Введение
1.1. Платформа Java и вычислительная среда
1.2. Роль интерфейса JNI
1.3. Последствия использования интерфейса JNI
1.4. Случаи использования интерфейса JNI
1.5. Развитие интерфейса JNI
1.6. Примеры программ
Глава 2. Приступая к работе
2.1. Общее представление
2.2. Объявление native-метода
2.3. Компиляция класса HelloWorld
2.4. Создание файла заголовков
2.5. Написание кода native-метода
2.6. Компиляция исходного кода на языке С и создание native-библиотеки
2.7. Запуск программы
Часть II. Справочное пособие по программированию
Глава 3. Основные типы, строки и массивы
3.1. Простой native-метод
3.1.1. Прототип С-функции, реализующей native-метод
3.1.2. Аргументы native-метода
3.1.3. Соответствие типов
3.2. Обращение к строкам
3.2.1. Преобразование к native-строкам
3.2.2. Освобождение ресурсов native-строк
3.2.3. Создание новых строк
3.2.4. Другие функции JNI для работы со строками
3.2.5. Новые JNI-функции для работы со строками в Java 2 SDK 1.2
3.2.6. Перечень JNI-функций для работы со строками
3.2.7. Выбор между функциями строк
3.3. Обращение к массивам
3.3.1. Обращение к массивам в языке С
3.3.2. Обращение к массивам простых типов
3.3.3. Перечень JNI-функций для работы с примитивными массивами
3.3.4. Выбор между функциями примитивного массива
3.3.5. Обращение к массивам объектов
Глава 4. Поля и методы
4.1. Обращение к полям
4.1.1. Алгоритм обращения к полю объекта
4.1.2. Дескрипторы поля
4.1.3. Обращение к статическим полям
4.2. Вызов методов
4.2.1. Вызов методов объекта
4.2.2. Формирование дескриптора метода
4.2.3. Обращение к статическим методам
4.2.4. Вызов методов суперкласса
4.3. Вызов конструкторов
4.4. Кэширование полей и идентификаторов методов
4.4.1. Кэширование во время использования
4.4.2. Кэширование в блоке статической инициализации класса
4.4.3. Сравнение двух способов кэширования идентификаторов
4.5. Эффективность использования JNI при обращении к полям и методам
Глава 5. Локальные и глобальные ссылки
5.1. Локальные и глобальные ссылки
5.1.1. Локальные ссылки
5.1.2. Глобальные ссылки
5.1.3. Слабые глобальные ссылки
5.1.4. Сравнительный анализ
5.2. Освобождение ссылок
5.2.1. Освобождение локальных ссылок
5.2.2. Управление локальными ссылками в Java 2 SDK 1.2
5.2.3. Освобождение глобальных ссылок
5.3. Правила управления ссылками
Глава 6. Исключения
6.1. Общее представление
6.1.1. Кэширование и вызов исключений в native-коде
6.1.2. Вспомогательные функции
6.2. Правильная обработка исключений
6.2.1. Проверка исключений
6.2.2. Обработка исключений
6.2.3. Исключения во вспомогательных функциях
Глава 7. Интерфейс вызова
7.1. Создание виртуальной машины Java
7.2. Компоновка native-приложений с виртуальной машиной Java
7.2.1. Компоновка с определенной виртуальной машиной Java
7.2.2. Компоновка с неизвестными виртуальными машинами
7.3. Подключение native-потоков
Глава 8. Дополнительные функции интерфейса JNI
8.1. Интерфейс JNI и потоки
8.1.1. Ограничения
8.1.2. Вход и выход из монитора
8.1.3. Реализация методов wait и notify в интерфейсе JNI
8.1.4. Получение указателя JNIEnv в произвольных контекстах
8.1.5. Соответствие с моделями потоков
8.2. Написание кода с многоязычной поддержкой
8.2.1. Создание jstrings из native-строк
8.2.2. Преобразование jstrings в native-строки
8.3. Регистрация native-методов
8.4. Обработчики загрузки и выгрузки библиотеки
8.4.1. Обработчик JNI_OnLoad
8.4.2. Обработчик JNI_OnUnload
8.5. Поддержка отражения
8.6. JNI-программирование в языке C++
Глава 9. Использование существующих native-библиотек
9.1. Преобразование «один к одному»
9.2. Общие заглушки
9.3. Сравнение методов создания оболочек для native-функций
9.4. Реализация общих заглушек
9.4.1. Класс CPointer
9.4.2. Класс CMalloc
9.4.3. Класс CFunction
9.5. Peer-классы
9.5.1. Применение peer-классов в Java-платформе
9.5.2. Освобождение памяти native-структур
9.5.3. Обратные указатели на peer-объекты
Глава 10. Проблемные и слабые места
10.1. Проверка ошибок
10.2. Передача недействительных аргументов JNI-функциям
10.3. Отличие jclass от jobject
10.4. Приведение аргументов к типу jboolean
10.5. Границы между Java-приложением и native-кодом
10.6. Отличие идентификаторов от ссылок
10.7. Кэширование идентификаторов полей и методов
10.8. Окончания строк Unicode
10.9. Нарушение правил управления доступом
10.10. Игнорирование многоязычной поддержки
10.11. Сохранение ресурсов виртуальной машины
10.12. Чрезмерное создание локальных ссылок
10.13. Использование недействительных локальных ссылок
10.14. Использование указателя JNIEnv в потоках
10.15. Несоответствие модели потоков
Часть III. Спецификация
Глава 11. Обзор проекта JNI
11.1. Цели проекта JNI
11.2. Загрузка native-библиотек
11.2.1. Загрузчик классов
11.2.2. Загрузчики классов и native-библиотеки
11.2.3. Поиск native-библиотек
11.2.4. Ограничение безопасности типов
11.2.5. Выгрузка native-библиотек
11.3. Связывание native-методов
11.4. Соглашения о вызовах
11.5. Указатель интерфейса JNIEnv
11.5.1. Структура интерфейсного указателя JNIEnv
11.5.2. Преимущества интерфейсного указателя
11.6. Передача данных
11.6.1. Глобальные и локальные ссылки
11.6.2. Реализация локальных ссылок
11.6.3. Слабые глобальные ссылки
11.7. Обращение к объектам
11.7.1. Обращение к примитивным массивам
11.7.2. Поля и методы
11.8. Ошибки и исключения
11.8.1. Отсутствие проверок программных ошибок
11.8.2. Исключения виртуальной машины Java
11.8.3. Асинхронные исключения
Глава 12. Типы интерфейса JNI
12.1. Примитивные и ссылочные типы
12.1.1. Примитивные типы
12.1.2. Ссылочные типы
12.1.3. Тип jvalue
12.2. Идентификаторы полей и методов
12.3. Форматы строк
12.3.1. Строки UTF-8
12.3.2. Дескрипторы классов
12.3.3. Дескрипторы полей
12.3.4. Дескрипторы методов
12.4. Константы
Глава 13. Функции интерфейса JNI
13.1. Краткий обзор JNI-функций
13.1.1. Непосредственно экспортируемые функции интерфейса вызовов
13.1.2. Интерфейс JavaVM
13.1.3. Функции в native-библиотеках
13.1.4. Интерфейс JNIEnv
13.2. Спецификация JNI-функций
Алфавитный указатель
Все отзывы о книге Интерфейс JNI : руководство по программированию
С книгой "Интерфейс JNI" читают
Внимание!
При обнаружении неточностей или ошибок в описании книги "Интерфейс JNI : руководство по программированию (автор Шенг Лиэнг )", просим Вас отправить сообщение на почту help@directmedia.ru. Благодарим!
и мы свяжемся с вами в течение 15 минут
за оставленную заявку