Nativní klíčové slovo v jazyce Java - Jak funguje nativní klíčové slovo? (Příklad)

Obsah:

Anonim

Úvod do nativního klíčového slova v Javě

Nativní klíčové slovo slouží jako spojení mezi jazykem JAVA a kusem kódu nebo knihovny napsané v různých jazycích, s výjimkou JAVA, která může záviset na počítači, na kterém pracujete. Pokud je nativní klíčové slovo aplikováno na metodu, znamená to, že metoda bude implementována pomocí nativního kódu napsaného v jiném jazyce (jako C nebo C ++) přes JNI (nativní rozhraní JAVA).

Syntax

Syntaxe nativního kódu je stejná jako definice normální funkce s klíčovým slovem „nativní“ přidaným na začátku funkce.

Například:

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

Veřejnost je zde modifikátor přístupu. Měl by být veřejný, aby jej mohl použít jiný soubor. Řetězec je typ dat návratu funkce. Může to být celé číslo, znak nebo booleovské číslo v závislosti na klíčovém slově. Parametr předaný této funkci je také řetězec datového typu. Všechno by mělo být udržováno pod třídou.

Po deklaraci funkce voláme tuto funkci prostřednictvím vytvořeného objektu a načtení knihovny.

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

Knihovna definovaná výše by měla být načtena jako první a je vytvořen její objekt. S pomocí tohoto objektu se nazývá nativní funkce.

Jak funguje nativní klíčové slovo?

Měly by existovat dva soubory. Jeden obsahující kód JAVA, zatímco druhý by měl mít starší kód C / C ++. K vyvolání staršího kódu bude použit kód Java. Tento starší kód bude interagovat s hardwarem a vrací očekávaný výstup.

Když starší kód interaguje s hardwarem, nebude se řídit pokyny stanovenými společností JAVA. Tento kód provede požadované zpracování, aby získal výstup a předal výsledky JNI. Nativní rozhraní Java se poté zkontroluje ve svém adresáři obsahujícím všechna pravidla týkající se nativního kódu (spadá do souboru s názvem javah.exe v sadě SDK). JNI je navržen jako součást sady nástrojů Java. Po tomto zpracování bude JAVA publikovat výstupy v samotném jazyce JAVA. Když vytváříme program v JAVA, musíme se ujistit, že existuje spojení proměnných / datových toků mezi souborem JAVA a starým souborem, aby mezi nimi byl plynulý tok dat.

Kroky vysvětlující, jak využít nativní klíčová slova, jsou uvedeny níže:

  1. Napište kód JAVA obsahující nativní metodu, načtenou sdílenou knihovnu a uložte ji pomocí souboru „filename.JAVA“.
  2. Zkompilujte kód JAVA a převeďte jej na bajtkód.
  3. Vytvořte soubor záhlaví C / C ++ obsahující podpis nativní funkce, který by měl být volán.
  4. Zápis kódu C / C ++ má implementaci nativní metody.
  5. Chcete-li zobrazit výsledky, spusťte spustitelný soubor JAVA.

Příklad

Měli bychom napsat kód do Eclipse a spustit kód pro vytvoření knihovny, pomocí které bude implementován C kód.

Kód : package 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);
)
)

Po uložení tohoto kódu do nové „třídy“ projektu java. Musíme vytvořit prostředí pro spuštění, aby se vygeneroval soubor záhlaví.

Když to spustíme, měli bychom si vygenerovat knihovnu.

Výstup:

Zde jsme vytvořili soubor záhlaví z kódu java, který bude sloužit jako spojení mezi nativním kódem a jazykem java.

Výhody nativního klíčového slova v Javě

  1. JAVA poskytuje další výhodu v interakci s kódem psaným v jiných jazycích a omezuje práci tak, aby měl stejný kód napsaný v JAVA, čímž se snižuje redundance kódu.
  2. Zlepšuje celkový výkon kódu. Protože kód je psán v jiných jazycích, může být rychlejší, když pracuje s jazykem stroje ve srovnání s JAVA. Potom můžeme pomocí programu JAVA zavolat tento kód.
  3. Pomocí tohoto přístupu můžeme přímo volat systémová volání. Snížení pravděpodobnosti vnějšího rušení a zlepšení rychlosti provádění kódu.
  4. Předvolené knihovny můžete dynamicky volat (napsané v jakémkoli jiném jazyce než JAVA) pomocí libovolného kódu řízení napsaného v JAVA a stále dostávat odpověď v JAVA.
  5. Umožňuje JAVA přístup k hardwarovým prostředkům, které jsou dostupné pouze pro použití v jiných jazycích.
  6. V případě, že pro vaši aplikaci již máte vytvořený kód závislý na platformě a jehož funkce nejsou podporovány pomocí JAVA, můžeme mít nativní kód a tento nativní kód propojit s JAVA pomocí nativního klíčového slova.

Pravidla

  1. Nativní klíčové slovo se použije před názvem metody.
  2. Deklarace nativní metody nemá tělo a měla by končit středníkem, protože tyto metody nejsou definovány v JAVA, ale jsou přítomny v jazyce C / C ++.
  3. Nativní metody nelze deklarovat jako abstraktní metodu.
  4. Protože neexistuje žádná jistota, pokud je předchozí starý kód psán v souladu s normou IEEE 754 (IEEE Standard pro aritmetiku s plovoucí desetinnou čárkou je technická norma pro aritmetiku s pohyblivou desetinnou čárkou, která byla v roce 1985 založena Ústavem elektrotechnických a elektronických techniků), nemůžeme deklarovat tyto nativní metody jako strictftp.
  5. Specifikace Java Native Interface (JNI) je navržena společností JAVA pro definování pravidel a deklarací pro implementaci nativních metod, jako je převod datových typů mezi Java a nativním kódem.

Závěr

Nativní klíčové slovo je překlenutí mezery mezi rodnými jazyky a JAVA. To lze použít jako kritický odkaz, pokud interakce našeho softwaru s hardwarem je více k získání účinného kódu pomocí již existujícího kódu. To snižuje implementaci práce ve srovnání s návrhem nového kódu aplikace od nuly, kamkoli by se dalo zabránit.

Doporučené články

Toto je průvodce nativním klíčovým slovem v Javě. Zde diskutujeme, jak nativní klíčové slovo pracuje s příklady, výhodami a pravidly. Další informace naleznete také v následujících článcích -

  1. JTabbedPane v Javě
  2. Chráněné klíčové slovo v Javě
  3. Virtuální stroj Java
  4. Swing komponenty v Javě
  5. Klíčová slova C ++