Введение в родное ключевое слово в Java
Нативное ключевое слово действует как связь между языком JAVA и частью кода или библиотеки, написанной на разных языках, кроме JAVA, которая может зависеть от машины, на которой вы работаете. Если к методу применяется ключевое слово native, то это означает, что метод будет реализован с использованием собственного кода, написанного на другом языке (например, C или C ++) через JNI (собственный интерфейс JAVA).
Синтаксис
Синтаксис нативного кода такой же, как и в обычном определении функции, с ключевым словом «native», добавленным в начале функции.
Например:
Public class testing
(public native String testMethod (String parameter);)
Здесь публика является модификатором доступа. Он должен быть общедоступным, чтобы его мог использовать другой файл. Строка является типом возвращаемых данных функции. Это может быть целое число, символ или логическое значение в зависимости от ключевого слова. Параметр, передаваемый в эту функцию, также имеет тип данных string. Все должно быть в низших классах.
После объявления функции мы вызываем эту функцию через созданный объект и загруженную библиотеку.
public static void main(String() args)
(
System.loadLibrary("testing");
testing testingnew = new testing();
String output = testingnew.stringMethod("NATIVE");
)
Библиотека, определенная выше, должна быть загружена первой, а ее объект создан. С помощью этого объекта вызывается нативная функция.
Как работает ключевое слово Native?
Там должно быть два файла. Один содержит код JAVA, а другой должен иметь унаследованный код C / C ++. Код Java будет использоваться для вызова устаревшего кода. Этот устаревший код будет взаимодействовать с оборудованием и возвращать ожидаемый результат.
Когда унаследованный код взаимодействует с оборудованием, он не будет следовать рекомендациям, изложенным JAVA. Этот код выполнит необходимую обработку, чтобы получить выходные данные и передать результаты в JNI. Собственный интерфейс Java затем проверит свой каталог, содержащий все правила, относящиеся к собственному коду (это входит в файл с именем javah.exe в SDK). JNI разработан как часть инструментария Java. После этой обработки JAVA опубликует выходные данные на самом языке JAVA. Когда мы создаем программу в JAVA, мы должны убедиться, что между файлом JAVA и унаследованным файлом существует связь между переменной и потоком данных, чтобы обеспечить плавный поток данных между ними.
Шаги, объясняющие, как использовать собственные ключевые слова, приведены ниже:
- Напишите код JAVA, содержащий нативный метод, загруженную разделяемую библиотеку и сохраните ее, используя «filename.JAVA».
- Скомпилируйте код JAVA и преобразуйте код в байт-код.
- Создайте файл заголовка C / C ++, содержащий сигнатуру собственной функции, которая должна быть вызвана.
- Написание кода на C / C ++ имеет собственную реализацию метода.
- Запустите исполняемый файл JAVA, чтобы увидеть результаты.
пример
Мы должны написать код в Eclipse и запустить код, чтобы создать библиотеку, используя которую затем будет реализован C-код.
Код : пакет com.slackerOne;
public class JPP (
public static native void pAccess();
public static native int pRead();
public static native void pWrite(int port, int output);
static(
System.loadLibrary("JPPlibs");
)
public void jAccess()(
JPP.pAccess();
)
public int jRead()(
return JPP.pRead();
)
public void jWrite(int port, int output)(
JPP.pWrite(port, output);
)
)
После сохранения этого кода в новом «классе» проекта Java. Мы должны настроить среду выполнения для генерации файла заголовка.
Когда мы запустим это, мы должны сгенерировать библиотеку.
Выход:
Здесь мы создали файл заголовка из кода Java, который будет действовать как ссылка между нативным кодом и языком Java.
Преимущества родного ключевого слова в Java
- Это обеспечивает JAVA дополнительное преимущество при взаимодействии с кодом, написанным на других языках, и сокращает объем работы по созданию того же кода, написанного на JAVA, следовательно, сокращая избыточность кода.
- Это улучшает общую производительность кода. Поскольку код написан на других языках, может быть быстрее, если он работает с машинным языком по сравнению с JAVA. Затем мы можем использовать программу JAVA для вызова этого кода.
- Используя этот подход, мы можем напрямую давать системные вызовы. Снижение вероятности внешнего вмешательства и повышение скорости выполнения кода.
- Вы можете динамически вызывать предварительно загруженную библиотеку (написанную на любом языке, кроме JAVA), используя произвольный код управления, написанный на JAVA, и по-прежнему получать ответ в JAVA.
- Это делает доступным для JAVA доступ к аппаратным ресурсам, доступным для использования только на других языках.
- Если у вас уже есть зависимый от платформы код, уже созданный для вашего приложения и функции которого не поддерживаются через JAVA, в этом случае мы можем иметь собственный код и связать этот собственный код с JAVA с помощью собственного ключевого слова.
правила
- Собственное ключевое слово должно использоваться перед именем метода.
- Объявление собственного метода не имеет тела и должно заканчиваться точкой с запятой, так как эти методы не определены в JAVA, но присутствуют на языке C / C ++.
- Нативные методы не могут быть объявлены как абстрактный метод.
- Поскольку нет уверенности в том, что предыдущий старый код написан в соответствии со стандартом IEEE 754 (Стандарт IEEE для арифметики с плавающей точкой является техническим стандартом для арифметики с плавающей точкой, установленным в 1985 году Институтом инженеров по электротехнике и электронике), мы не можем объявить эти нативные методы строгим.
- Спецификация Java Native Interface (JNI) разработана JAVA для определения правил и объявлений для реализации собственных методов, таких как преобразование типов данных между Java и собственным кодом.
Вывод
Ключевое ключевое слово - это то, что устраняет разрыв между родными языками и JAVA. Это может быть использовано в качестве критической ссылки, если наше программное обеспечение взаимодействует с аппаратным обеспечением в большей степени для получения эффективного кода с использованием уже существующего кода. Это делает реализацию менее эффективной по сравнению с разработкой нового кода приложения с нуля, где бы его можно было избежать.
Рекомендуемые статьи
Это руководство по родному ключевому слову в Java. Здесь мы обсудим, как работает ключевое слово Native с примерами, а также с преимуществами и правилами. Вы также можете взглянуть на следующие статьи, чтобы узнать больше -
- JTabbedPane в Java
- Защищенное ключевое слово в Java
- Виртуальная машина Java
- Компоненты Swing в Java
- C ++ Ключевые слова