Родное ключевое слово в Java - Как работает ключевое слово Native? (Пример)

Содержание:

Anonim

Введение в родное ключевое слово в 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 и унаследованным файлом существует связь между переменной и потоком данных, чтобы обеспечить плавный поток данных между ними.

Шаги, объясняющие, как использовать собственные ключевые слова, приведены ниже:

  1. Напишите код JAVA, содержащий нативный метод, загруженную разделяемую библиотеку и сохраните ее, используя «filename.JAVA».
  2. Скомпилируйте код JAVA и преобразуйте код в байт-код.
  3. Создайте файл заголовка C / C ++, содержащий сигнатуру собственной функции, которая должна быть вызвана.
  4. Написание кода на C / C ++ имеет собственную реализацию метода.
  5. Запустите исполняемый файл 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

  1. Это обеспечивает JAVA дополнительное преимущество при взаимодействии с кодом, написанным на других языках, и сокращает объем работы по созданию того же кода, написанного на JAVA, следовательно, сокращая избыточность кода.
  2. Это улучшает общую производительность кода. Поскольку код написан на других языках, может быть быстрее, если он работает с машинным языком по сравнению с JAVA. Затем мы можем использовать программу JAVA для вызова этого кода.
  3. Используя этот подход, мы можем напрямую давать системные вызовы. Снижение вероятности внешнего вмешательства и повышение скорости выполнения кода.
  4. Вы можете динамически вызывать предварительно загруженную библиотеку (написанную на любом языке, кроме JAVA), используя произвольный код управления, написанный на JAVA, и по-прежнему получать ответ в JAVA.
  5. Это делает доступным для JAVA доступ к аппаратным ресурсам, доступным для использования только на других языках.
  6. Если у вас уже есть зависимый от платформы код, уже созданный для вашего приложения и функции которого не поддерживаются через JAVA, в этом случае мы можем иметь собственный код и связать этот собственный код с JAVA с помощью собственного ключевого слова.

правила

  1. Собственное ключевое слово должно использоваться перед именем метода.
  2. Объявление собственного метода не имеет тела и должно заканчиваться точкой с запятой, так как эти методы не определены в JAVA, но присутствуют на языке C / C ++.
  3. Нативные методы не могут быть объявлены как абстрактный метод.
  4. Поскольку нет уверенности в том, что предыдущий старый код написан в соответствии со стандартом IEEE 754 (Стандарт IEEE для арифметики с плавающей точкой является техническим стандартом для арифметики с плавающей точкой, установленным в 1985 году Институтом инженеров по электротехнике и электронике), мы не можем объявить эти нативные методы строгим.
  5. Спецификация Java Native Interface (JNI) разработана JAVA для определения правил и объявлений для реализации собственных методов, таких как преобразование типов данных между Java и собственным кодом.

Вывод

Ключевое ключевое слово - это то, что устраняет разрыв между родными языками и JAVA. Это может быть использовано в качестве критической ссылки, если наше программное обеспечение взаимодействует с аппаратным обеспечением в большей степени для получения эффективного кода с использованием уже существующего кода. Это делает реализацию менее эффективной по сравнению с разработкой нового кода приложения с нуля, где бы его можно было избежать.

Рекомендуемые статьи

Это руководство по родному ключевому слову в Java. Здесь мы обсудим, как работает ключевое слово Native с примерами, а также с преимуществами и правилами. Вы также можете взглянуть на следующие статьи, чтобы узнать больше -

  1. JTabbedPane в Java
  2. Защищенное ключевое слово в Java
  3. Виртуальная машина Java
  4. Компоненты Swing в Java
  5. C ++ Ключевые слова