Cuvânt cheie nativ în Java - Cum funcționează cuvântul cheie nativ? (Exemplu)

Cuprins:

Anonim

Introducere pe cuvinte cheie native în Java

Cuvântul cheie autohton funcționează ca o legătură între limbajul JAVA și o bucată de cod sau bibliotecă scrisă în diferite limbi, cu excepția JAVA, care poate fi dependentă de mașina pe care funcționezi. Dacă cuvântul cheie nativ este aplicat unei metode, atunci aceasta înseamnă că metoda va fi implementată folosind codul nativ scris în altă limbă (cum ar fi C sau C ++) prin JNI (interfața nativă JAVA).

Sintaxă

Sintaxa codului autohton este aceeași cu definiția funcției normale cu cuvântul cheie „nativ” adăugat la începutul funcției.

De exemplu:

Public class testing
(public native String testMethod (String parameter);)

Aici publicul este un modificator de acces. Ar trebui să fie public pentru ca un alt fișier să-l poată utiliza. Șirul este tipul de date de retur al funcției. Poate fi un număr întreg, caracter sau boolean în funcție de cuvântul cheie. Parametrul trecut la această funcție este și de tip șir de date. Totul trebuie să fie ținut sub clasă.

După declararea funcției, apelăm această funcție prin intermediul obiectului creat și al bibliotecii încărcate.

public static void main(String() args)
(
System.loadLibrary("testing");
testing testingnew = new testing();
String output = testingnew.stringMethod("NATIVE");
)

Biblioteca definită mai sus ar trebui să fie încărcată mai întâi și n obiectul său este creat. Cu ajutorul acestui obiect se numește funcția nativă.

Cum funcționează cuvântul cheie nativ?

Ar trebui să existe două dosare. Unul care conține cod JAVA, în timp ce celălalt ar trebui să aibă cod de moștenire C / C ++. Codul Java va fi folosit pentru a apela codul moștenitor. Acest cod de moștenire va interacționa cu hardware-ul și va returna rezultatul scontat.

Atunci când codul moștenitor interacționează cu hardware-ul, atunci acesta nu va urma recomandările stabilite de JAVA. Acest cod va face procesarea dorită pentru a obține rezultatul și a trece rezultatele la JNI. Interfața nativă Java va verifica apoi în directorul său care va conține toate regulile referitoare la codul autohton (Acesta se află sub un fișier numit javah.exe în SDK). JNI este proiectat ca parte a setului de instrumente Java. După această procesare, JAVA va publica rezultatele în limba JAVA în sine. Când creăm programul în JAVA, atunci trebuie să ne asigurăm că există o legătură de flux variabil / date între fișierul JAVA și fișierul moștenire, astfel încât să existe un flux lin de date între ambele.

Pașii care explică modul de utilizare a cuvintelor cheie native sunt prezentați mai jos:

  1. Scrieți codul JAVA care conține metoda nativă, biblioteca comună încărcată și salvați-l folosind „nume de fișier.JAVA”
  2. Compilați codul JAVA și convertiți codul în bytecode.
  3. Creați un fișier antet C / C ++ care conține o semnătură funcțională nativă care ar trebui să fie apelată.
  4. Scrierea codului C / C ++ are implementarea unei metode native.
  5. Rulați fișierul executabil JAVA pentru a vedea rezultatele.

Exemplu

Ar trebui să scriem cod în Eclipse și să executăm codul pentru a crea o bibliotecă folosind care codul C va fi implementat.

Cod : pachet 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);
)
)

După salvarea acestui cod în noua „clasă” a proiectului java. Trebuie să creăm un mediu de rulare pentru a genera un fișier antet.

Când vom rula acest lucru, ar trebui să obținem o bibliotecă generată.

ieşire:

Aici am creat fișierul antet din codul java, care va acționa ca o legătură între codul nativ și limba java.

Avantajele cuvântului cheie nativ în Java

  1. Acesta oferă un avantaj suplimentar JAVA de a interacționa cu codul scris în alte limbi și reduce lucrul pentru a avea același cod scris în JAVA, reducând astfel redundanța codului.
  2. Îmbunătățește performanța generală a codului. Întrucât codul este scris în alte limbi, poate fi mai rapid atunci când funcționează cu limbajul mașinii în comparație cu JAVA. Putem folosi apoi programul JAVA pentru a apela acest cod.
  3. Folosind această abordare, putem da direct apeluri de sistem. Reducerea probabilității de interferență externă și îmbunătățirea vitezei de execuție a codului.
  4. Puteți apela dinamic la o bibliotecă preîncărcată (scrisă în orice altă limbă decât JAVA) folosind un cod de conducere arbitrar scris în JAVA și obțineți totuși un răspuns în JAVA.
  5. O face accesibilă pentru JAVA să ajungă la resursele hardware care sunt disponibile pentru a fi utilizate numai de alte limbi.
  6. În cazul în care aveți deja un cod dependent de platformă, compilat deja pentru aplicația dvs. și ale cărui caracteristici nu sunt acceptate prin JAVA, în acest caz, putem avea cod nativ și conecta acest cod nativ la JAVA prin intermediul cuvântului cheie nativ.

reguli

  1. Cuvântul cheie nativ trebuie utilizat înainte de numele metodei.
  2. Declarația metodei native nu are corpul și ar trebui să se încheie cu punct și virgulă, deoarece aceste metode nu sunt definite în JAVA, dar sunt prezente în limbajul C / C ++.
  3. Metodele native nu pot fi declarate ca metode abstracte.
  4. Întrucât nu există nicio garanție dacă codul vechi anterior este scris în conformitate cu standardul IEEE 754 (Standardul IEEE pentru aritmetica cu punct flotant este un standard tehnic pentru aritmetica cu punct flotant, înființat în 1985 de Institutul Inginerilor Electroelectronici), nu putem declara aceste metode native ca strictftp.
  5. Specificația Java Native Interface (JNI) este proiectată de JAVA pentru a defini regulile și declarațiile de implementare a metodelor native, cum ar fi conversia tipurilor de date între Java și codul autohton.

Concluzie

Cuvântul cheie nativ este cel care elimină diferența dintre limbile native și JAVA. Acest lucru poate fi utilizat ca o legătură critică dacă interacțiunea software-ului nostru cu hardware este mai mult pentru a obține un cod eficient folosind cod preexistent. Face ca implementarea să funcționeze mai puțin în comparație cu proiectarea unui nou cod de aplicație de la zero, oriunde ar putea fi evitată.

Articole recomandate

Acesta este un ghid pentru cuvintele cheie native în Java. Aici vom discuta despre modul în care funcționează cuvântul cheie nativ cu exemple, precum și avantajele și regulile. De asemenea, puteți arunca o privire la următoarele articole pentru a afla mai multe -

  1. JTabbedPane în Java
  2. Cuvânt cheie protejat în Java
  3. Mașină virtuală Java
  4. Componentele pivotante în Java
  5. Cuvinte cheie C ++