The Smyčka Read-Eval-Print nebo REPL je rozhraní shellu. Toto rozhraní čte a vyhodnocuje každý řádek vstupu a poté vytiskne výsledek. The Smyčka Read-Eval-Print nám pomáhá komunikovat s naším běhovým prostředím aplikací přítomným v určitém stavu. Příkazy jsou čteny a vyhodnocovány REPL a vytisknout výsledek. Po vytištění výsledku se REPL vrátí na začátek a přečte, vyhodnotí a vytiskne náš další vstup.
Pomocí REPL můžeme snadno psát a testovat náš Java kód bez jeho kompilace a můžeme vidět výstup přímo na konzoli.
Java ještě nemá REPL?
Rozhodně musí být REPL v zavedeném jazyce, jako je Jáva . Ale ne všechny jazyky mají REPL a Java je jedním z nich. Java vývojáři to vyžadují nejvíce. Java má nějakou dobu něco jako REPL jako Java Beanshell. Ale projekt nebyl plně vybavený REPL s jinými jazyky. Za tímto účelem byla v roce 2016 vydána Java 9, která poskytuje plně funkční prostředí REPL.
Proč je REPL tak užitečný?
Při použití REPL nepotřebujeme kompilovat nebo testovat náš kód Java pomocí příkazu javac. Po použití REPL,
- K napsání programu Java není potřeba editor.
- Program Java není třeba ukládat.
- Není třeba kompilovat Java program.
- Není třeba provádět úpravy, pokud dojde k chybě při kompilaci nebo běhu.
- Proces není třeba opakovat.
Můžeme vyhodnocovat metody, třídy a příkazy, aniž bychom třídu vytvořili. Program 'Hello World' lze také napsat bez vytvoření třídy.
obsazení v sql
Požadavky na používání REPL
Existuje pouze jeden požadavek na použití REPL , tj. měli bychom mít Java 9 nebo vyšší verze v našem systému. Pokud je v našem systému nainstalována Java 9, jsme připraveni k použití REPL . Aby bylo možné zkontrolovat proud verze Java ve svém systému otevřete příkazový řádek a zadejte následující příkaz:
nainstalovat maven
java -version
Pomocí REPL
Níže je několik příkladů REPL, ve kterých vyhodnotíme matematické výrazy, vypočítáme Fibonacciho řadu, vytvoříme dynamickou třídu, známe historii a třídu upravíme.
Příklad 1: Vyhodnocení matematických výrazů
jshell> double a = 10; jshell> a= Math.pow(a, 2); jshell> a+20 jshell> /vars jshell> double data = Math.pow(8.3, 5);
Popis:
V prvním řádku vytvoříme proměnnou 'A' typu double a nastavíme jeho počáteční hodnotu 10. Poté najdeme druhou mocninu proměnné 'a' a uložíme ji do stejné proměnné. Poté jednoduše přidáme 20 do proměnné 'a'. Jshell vloží výsledek do dočasné proměnné '' . Dále provedeme '/jehož' příkaz, který nám zobrazí všechny vytvořené proměnné. Nakonec vytvoříme proměnnou 'data' typu double a uložte 5čtsíla číslice 8.3.
Výstup:
sada strojopisu
Příklad 2: Výpočet Fibonacciho řady
jshell> int fibo(int no) (no == 1)) ...> return no;e all possible completions; total possible completions ...> else ...> return fibo(no-1)+fibo(no-2); ...> jshell> /methods jshell> fibo(11) jshell> fibo(12) jshell> int[] arr = { 1,2,3,4,5,6}; jshell> for(int i: arr){ ...> System.out.println(fibo(i)); ...> }
Popis:
V prvních šesti řádcích kódu vytvoříme metodu pro Fibonacciho řadu. Poté použijeme /metody příkaz Jshell, který nám ukáže všechny dostupné metody. V následujících dvou řádcích otestujeme fibo() metoda předáním celočíselných hodnot. Vytvoříme pole arr abychom určili, kolik termínů chceme získat Fibonacciho řadu. Dále iterujeme každou hodnotu arr pomocí pro každou smyčku. Každou hodnotu arr předáme metodě fibo() a vypíšeme její návratovou hodnotu.
Výstup:
Příklad 3: REPL pro opětovné použití
jshell> int fibo(int no){ ...> return 2; ...> } jshell> for(int i: arr){ ...> System.out.println(fibo(i)); ...> }
Popis:
Ve výše uvedeném kódu vytvoříme metodu fibo() se stejným návratovým typem a argumentem, jaké jsme vytvořili dříve. V tomto okamžiku Jshell přepíše předchozí 'fibo()' metoda se současnou. Dále předáme každou hodnotu arr funkci, abychom zajistili, zda je naše metoda fibo() přepsána nebo ne.
Výstup:
seznam.seřadit java
Příklad 4: Definování třídy
jshell> class Student{ ...> public String Name; ...> public int age; ...> public String course; ...> public int semester; ...> public Student(String Name, int age, String course, int semester){ ...> this.Name=Name; ...> this.age=age; ...> this.course = course; ...> this.semester=semester; ...> } ...> public void showData(){ ...> System.out.println('Name= '+ Name); ...> System.out.println('Age= '+ age); ...> System.out.println('Course= '+ course); ...> System.out.println('Semester= '+semester); ...> } ...> }
Popis:
Ve výše uvedeném kódu vytvoříme třídu 'Student' , které mají Jméno, věk, kurz a semestr. Vytvoříme konstruktor, ve kterém těmto proměnným nastavíme hodnoty. Po konstruktoru vytvoříme metodu, která ukazuje hodnotu všech proměnných pro každou instanci třídy.
Výstup:
Příklad 5: Vytvoření instance třídy
jshell> Student s1 = new Student( 'Shubham Rastogi', 18, 'MCA', 4); jshell> Student s2 = new Student( 'Kartik Rastogi', 23, 'MCA', 3); jshell> /vars jshell> s1.showData(); jshell> s2.showData();
Popis:
jakou mám velikost monitoru
Ve výše uvedeném kódu vytvoříme dvě instance třídy a předáme hodnotu konstruktoru pro všechny proměnné třídy. Dále spustíme příkaz Jshell, abychom zkontrolovali, zda jsou proměnné s1 a s2 vytvořeny nebo ne. Nakonec zavoláme metodu showData() k zobrazení dat každé instance.
Výstup: