Innfødt nøkkelord i Java - Hvordan fungerer Native søkeordet? (Eksempel)

Innholdsfortegnelse:

Anonim

Introduksjon om Native søkeord i Java

Det opprinnelige nøkkelordet fungerer som en kobling mellom JAVA-språket og en del av koden eller biblioteket som er skrevet på forskjellige språk, bortsett fra JAVA, som kan være avhengig av maskinen du bruker. Hvis det innfødte nøkkelordet brukes på en metode, betyr det at metoden blir implementert ved å bruke innfødt kode skrevet på et annet språk (som C eller C ++) via JNI (JAVA native interface).

syntax

Syntaks for innfødt kode er den samme som normal funksjonsdefinisjon med "innfødt" nøkkelord lagt til ved starten av funksjonen.

For eksempel:

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

Her er publikum en tilgangsmodifiserer. Den skal være offentlig, slik at en annen fil kan bruke den. Strengen er returdatatypen for funksjonen. Det kan være heltall, karakter eller boolsk, avhengig av nøkkelordet. Parameteren som er gitt til denne funksjonen er også av datatypestreng. Alt skal holdes under klasse.

Etter funksjonserklæring kaller vi denne funksjonen via objekt opprettet og bibliotek lastet.

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

Bibliotek definert ovenfor skal lastes først og n objektet opprettes. Ved hjelp av dette objektet kalles den opprinnelige funksjonen.

Hvordan fungerer Native søkeordet?

Det skal være to filer. Den ene inneholder JAVA-kode, mens den andre skal ha C / C ++ legatkode. Java-koden vil bli brukt til å ringe den gamle arven. Denne gamle koden vil samhandle med maskinvare og returnere forventet output.

Når den gamle koden samhandler med maskinvare, vil den ikke følge retningslinjene som er lagt ut av JAVA. Denne koden vil gjøre den ønskede behandlingen for å få utdata og overføre resultatene til JNI. Java-grensesnittet for Java vil da sjekke i katalogen som inneholder alle reglene for innfødt kode (Dette kommer under en fil som heter SDK.exe). JNI er designet som en del av Java-verktøyet. Etter denne behandlingen vil JAVA publisere utgangene på selve JAVA-språket. Når vi oppretter programmet i JAVA, må vi sørge for at det er en variabel / dataflytkobling mellom JAVA-filen og den gamle filen, slik at det er en jevn flyt av data mellom begge.

Følgende trinn for å forklare hvordan du bruker native søkeord:

  1. Skriv JAVA-koden som inneholder opprinnelig metode, delt bibliotek lastet og lagre det ved å bruke “filnavn.JAVA”.
  2. Sett sammen JAVA-kode og konverter koden til bytekode.
  3. Lag en C / C ++ overskriftsfil som inneholder en egen funksjonssignatur som skal kalles.
  4. Skriv C / C ++ -kode har implementering av en innfødt metode.
  5. Kjør JAVA kjørbar fil for å se resultatene.

Eksempel

Vi bør skrive kode i Eclipse og kjøre koden for å opprette et bibliotek med hvilken C-kode som blir implementert.

Kode : pakke 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);
)
)

Etter å ha lagret denne koden i den nye "klassen" i java-prosjektet. Vi må sette opp et kjøremiljø for å generere en overskriftsfil.

Når vi skal kjøre dette, bør vi få et bibliotek generert.

Produksjon:

Her opprettet vi overskriftsfilen fra java-koden som vil fungere som en kobling mellom innfødt kode og java-språk.

Fordeler med Native Keyword i Java

  1. Det gir en ekstra fordel for JAVA å samhandle med koden som er skrevet på andre språk og redusere arbeidet med å ha den samme koden skrevet i JAVA, og dermed redusere kodedundans.
  2. Det forbedrer den generelle kodeytelsen. Siden koden er skrevet på andre språk kan være raskere når den fungerer med maskinspråket i forhold til JAVA. Vi kan deretter bruke JAVA-programmet til å kalle denne koden.
  3. Ved å bruke denne tilnærmingen kan vi direkte ringe systemanrop. Redusere sannsynligheten for ekstern interferens og forbedre hastigheten på kodeutførelse.
  4. Du kan dynamisk ringe et forhåndsinnlastet bibliotek (skrevet på et annet språk enn JAVA) ved å bruke en vilkårlig kjørekode skrevet i JAVA og fremdeles få svar i JAVA.
  5. Det gjør det tilgjengelig for JAVA å nå maskinvareressursene som bare er tilgjengelige for andre språk.
  6. Hvis du allerede har en plattformavhengig kode for applikasjonen din, og hvis funksjoner ikke støttes via JAVA, kan vi i så fall ha innfødt kode og koble denne innfødte koden til JAVA via innfødt nøkkelord.

regler

  1. Det opprinnelige nøkkelordet skal brukes før metodenavnet.
  2. Naturlig metodedeklarasjon har ikke kroppen og bør slutte med en semikolon da disse metodene ikke er definert i JAVA, men er til stede på C / C ++ språk.
  3. Innfødte metoder kan ikke erklæres som en abstrakt metode.
  4. Siden det ikke er noen sikkerhet hvis den forrige gamle koden er skrevet i samsvar med IEEE 754-standarden (IEEE-standarden for flytende punkt aritmetikk er en teknisk standard for flytende punkt-aritmetikk opprettet i 1985 av Institute of Electrical and Electronics Engineers), Vi kan ikke erklære disse opprinnelige metodene som strengeftp.
  5. Java Native Interface (JNI) -spesifikasjonen er designet av JAVA for å definere regler og erklæringer for å implementere native metoder, for eksempel konvertering av datatyper mellom Java og den native koden.

Konklusjon

Det opprinnelige nøkkelordet er som overbryter gapet mellom morsmål og JAVA. Dette kan brukes som en kritisk kobling hvis programvarens interaksjon med maskinvare er mer for å få den effektive koden ved å bruke en eksisterende kode. Det gjør implementeringsarbeidet mindre sammenlignet med å designe en ny applikasjonskode fra bunnen av hvor den kunne unngås.

Anbefalte artikler

Dette er en guide til Native søkeord i Java. Her diskuterer vi hvordan fungerer Native søkeordet med eksemplene, så vel som fordelene og reglene. Du kan også se på følgende artikler for å lære mer -

  1. JTabbedPane i Java
  2. Beskyttet nøkkelord i Java
  3. Java Virtual Machine
  4. Svingkomponenter i Java
  5. C ++ nøkkelord