Infödda nyckelord i Java - Hur fungerar Native nyckelordet? (Exempel)

Innehållsförteckning:

Anonim

Introduktion om infödda nyckelord i Java

Det ursprungliga nyckelordet fungerar som en länk mellan JAVA-språk och en bit kod eller bibliotek skrivet på olika språk förutom JAVA som kan vara beroende av den maskin du använder. Om det ursprungliga nyckelordet tillämpas på en metod, betyder det att metoden kommer att implementeras med hjälp av inbyggd kod skriven på något annat språk (som C eller C ++) via JNI (JAVA native interface).

Syntax

Syntaxen för inbyggd kod är densamma som normal funktionsdefinition med det "inbyggda" nyckelordet som läggs till i början av funktionen.

Till exempel:

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

Här är allmänheten en åtkomstmodifierare. Det bör vara offentligt så att en annan fil kan använda den. Strängen är funktionens returdatatyp. Det kan vara heltal, tecken eller booleska beroende på nyckelordet. Parametern som skickas till denna funktion är också av datatypsträngen. Allt bör hållas underklass.

Efter funktionsdeklaration kallar vi denna funktion via objekt skapat och bibliotek laddat.

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

Bibliotek som definierats ovan bör laddas först och n dess objekt skapas. Med hjälp av detta objekt kallas den ursprungliga funktionen.

Hur fungerar Native nyckelordet?

Det borde finnas två filer. En som innehåller JAVA-kod medan den andra borde ha C / C ++ arvkod. Java-kod kommer att användas för att ringa den äldre koden. Denna äldre kod kommer att interagera med hårdvara och returnera den förväntade utgången.

När den äldre koden interagerar med hårdvara följer den inte riktlinjerna som fastställts av JAVA. Den här koden gör den önskade bearbetningen för att få utdata och skicka resultaten till JNI. Java-ursprungliga gränssnittet kommer sedan att kontrollera i sin katalog som innehåller alla regler för nativ kod (Detta kommer under en fil som heter javah.exe i SDK) JNI är designad som en del av Java-verktygssatsen. Efter denna bearbetning kommer JAVA att publicera utgångarna på själva JAVA-språket. När vi skapar programmet i JAVA måste vi se till att det finns en variabel / dataflödeslänk mellan JAVA-filen och den äldre filen så att det finns ett jämnt flöde av data mellan båda.

Nedan anges steg som förklarar hur man använder inbyggda nyckelord:

  1. Skriv JAVA-koden med inbyggd metod, delat bibliotek laddat och spara den med "filnamn.JAVA".
  2. Sätt samman JAVA-kod och konvertera koden till bytecode.
  3. Skapa en C / C ++ headerfil som innehåller en inbyggd funktionssignatur som ska kallas.
  4. Skriv C / C ++ -kod har en inbyggd metods implementering.
  5. Kör JAVA-körbar fil för att se resultaten.

Exempel

Vi bör skriva kod i Eclipse och köra koden för att skapa ett bibliotek med vilken sedan C-kod kommer att implementeras.

Kod : paket 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);
)
)

Efter att du har sparat den här koden i den nya "klassen" i java-projektet. Vi måste skapa en körmiljö för att generera en rubrikfil.

När vi ska driva detta borde vi få ett bibliotek genererat.

Produktion:

Här skapade vi rubrikfilen från java-koden som kommer att fungera som en länk mellan inbyggd kod och java-språk.

Fördelar med Native Keywords i Java

  1. Det ger en extra fördel för JAVA att interagera med koden som är skriven på andra språk och minska arbetet med att ha samma kod skriven i JAVA, och därmed minska kodredundansen.
  2. Det förbättrar den övergripande kodprestandan. Eftersom koden skrivs på andra språk kan vara snabbare när den fungerar med maskinspråket jämfört med JAVA. Vi kan sedan använda JAVA-programmet för att kalla den här koden.
  3. Med denna metod kan vi direkt ringa systemsamtal. Minska sannolikheten för yttre störningar och förbättra hastigheten på körning av kod.
  4. Du kan dynamiskt ringa ett förladdat bibliotek (skrivet på något annat språk än JAVA) med hjälp av en godtycklig körkod skriven i JAVA och fortfarande få svar i JAVA.
  5. Det gör det tillgängligt för JAVA att nå hårdvaruressurserna som endast är tillgängliga för andra språk.
  6. Om du redan har en plattformberoende kod för din ansökan och vars funktioner inte stöds via JAVA, kan vi i så fall ha en inbyggd kod och länka den inbyggda koden till JAVA via inbyggd nyckelord.

regler

  1. Det ursprungliga nyckelordet ska användas före metodnamnet.
  2. Ursprunglig metoddeklaration har inte kroppen och bör avslutas med en semikolon eftersom dessa metoder inte definieras i JAVA utan finns på C / C ++ språk.
  3. Infödda metoder kan inte förklaras som en abstrakt metod.
  4. Eftersom det inte finns någon säkerhet om den tidigare gamla koden är skriven i enlighet med IEEE 754-standarden (IEEE-standarden för flytande punkt-aritmetik är en teknisk standard för flytande punkt-aritmetik som inrättades 1985 av Institute of Electrical and Electronics Engineers) så, vi kan inte förklara dessa ursprungliga metoder som striktftp.
  5. Specifikationen Java Native Interface (JNI) är utformad av JAVA för att definiera regler och deklarationer för att implementera inbyggda metoder, som omvandling av datatyper mellan Java och den inbyggda koden.

Slutsats

Det ursprungliga nyckelordet är som överbryter klyftan mellan modersmål och JAVA. Detta kan användas som en kritisk länk om vår programvaras interaktion med hårdvara är mer för att få den effektiva koden med hjälp av redan existerande kod. Det gör implementeringsarbetet mindre jämfört med att designa en ny applikationskod från början varhelst det kan undvikas.

Rekommenderade artiklar

Detta är en guide till infödda nyckelord i Java. Här diskuterar vi hur fungerar Native nyckelordet med exemplen, såväl som fördelarna och reglerna. Du kan också titta på följande artiklar för att lära dig mer -

  1. JTabbedPane i Java
  2. Skyddat nyckelord i Java
  3. Java Virtual Machine
  4. Swing-komponenter i Java
  5. C ++ Nyckelord