The Read-Eval-Print Loop tai REPL on shell-käyttöliittymä. Tämä käyttöliittymä lukee ja arvioi jokaisen syöttörivin ja tulostaa sitten tuloksen. The Read-Eval-Print Loop auttaa meitä olemaan vuorovaikutuksessa tietyssä tilassa olevan sovelluksemme ajon aikana. Komennot lukevat ja arvioivat REPL ja tulosta tulos. Tulostuksen jälkeen REPL palaa alkuun lukeakseen, arvioidakseen ja tulostaakseen seuraavan syötteemme.
REPL:n avulla voimme helposti kirjoittaa ja testata Java-koodiamme kääntämättä sitä ja voimme nähdä tulosteen suoraan konsolissa.
Java ei ole jo REPL?
Ehdottomasti REPL:n on oltava vakiintuneella kielellä, kuten Java . Kaikilla kielillä ei kuitenkaan ole REPL:ää, ja Java on yksi niistä. Java-kehittäjät ovat vaatineet sitä eniten. Javalla on ollut jotain REPL:n kaltaista jonkin aikaa Java Beanshell -nimellä. Mutta projekti ei ollut täysin varusteltu REPL muiden kielten kanssa. Tätä varten julkaistiin vuonna 2016 Java 9, joka tarjoaa täysin toimivan REPL-ympäristön.
Miksi REPL on niin hyödyllinen?
REPL-komentoa käyttämällä meidän ei tarvitse kääntää tai testata Java-koodiamme javac-komennolla. REPL:n käytön jälkeen
- Java-ohjelman kirjoittamiseen ei tarvita editoria.
- Java-ohjelmaa ei tarvitse tallentaa.
- Java-ohjelmaa ei tarvitse kääntää.
- Muokkausta ei tarvitse tehdä, jos käännös- tai ajonaikainen virhe tulee.
- Prosessia ei tarvitse toistaa.
Voimme arvioida menetelmiä, luokkia ja lauseita luomatta luokkaa. 'Hello World' -ohjelman voi kirjoittaa myös luomatta luokkaa.
aikomus aikomus
REPL:n käytön vaatimukset
Käytössä on vain yksi vaatimus REPL eli meidän olisi pitänyt Java 9 tai uudempi versio järjestelmässämme. Jos Java 9 on asennettu järjestelmäämme, olemme valmiita käyttöön REPL . Virran tarkistamiseksi Java-versio avaa järjestelmässäsi komentokehote ja kirjoita seuraava komento:
java -version
Käyttämällä REPL
Alla on muutamia esimerkkejä REPL:stä, jossa arvioimme matemaattisia lausekkeita, laskemme Fibonacci-sarjan, luomme dynaamisen luokan, tunnemme historian ja muokkaamme luokkaa.
alfa beeta karsiminen
Esimerkki 1: Matemaattisten lausekkeiden arviointi
jshell> double a = 10; jshell> a= Math.pow(a, 2); jshell> a+20 jshell> /vars jshell> double data = Math.pow(8.3, 5);
Kuvaus:
Ensimmäisellä rivillä luomme muuttujan 'a' tyypin double ja aseta sen alkuarvo 10. Sen jälkeen etsitään muuttujan 'a' neliö ja tallennetaan se samaan muuttujaan. Sen jälkeen yksinkertaisesti lisäämme 20 muuttujaan 'a'. Jshell laittaa tuloksen väliaikaiseen muuttujaan '3 dollaria' . Seuraavaksi toteutamme '/jonka' komento, joka näyttää meille kaikki luodut muuttujat. Lopuksi luomme muuttujan 'data' tyyppiä double ja säilytä 5thnumeron 8.3 teho.
Lähtö:
vertailukelpoinen merkkijono
Esimerkki 2: Fibonacci-sarjan laskeminen
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)); ...> }
Kuvaus:
Kuudella ensimmäisellä koodirivillä luomme menetelmän Fibonacci-sarjalle. Sen jälkeen käytämme /menetelmät Jshell-komento, joka näyttää meille kaikki käytettävissä olevat menetelmät. Kahdella seuraavalla rivillä testaamme fibo() menetelmä välittämällä kokonaislukuarvot. Luomme taulukon arr määrittääksemme kuinka monta termiä haluamme saada Fibonacci-sarjan. Seuraavaksi toistamme jokaisen arr-arvon käyttämällä jokaista silmukkaa. Välitämme jokaisen arr-arvon fibo()-metodille ja tulostamme sen palautusarvon.
Lähtö:
Esimerkki 3: REPL uudelleenkäyttöä varten
jshell> int fibo(int no){ ...> return 2; ...> } jshell> for(int i: arr){ ...> System.out.println(fibo(i)); ...> }
Kuvaus:
Yllä olevaan koodiin luomme fibo()-metodin, jolla on sama palautustyyppi ja argumentti, jonka olemme luoneet aiemmin. Tällä hetkellä Jshell ohittaa edellisen 'fibo()' menetelmä nykyisen kanssa. Seuraavaksi välitämme jokaisen arr-arvon funktiolle varmistaaksemme, onko fibo()-menetelmämme ohitettu vai ei.
Lähtö:
Esimerkki 4: Luokan määrittely
tärkeä
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); ...> } ...> }
Kuvaus:
Yllä olevassa koodissa luomme luokan 'Opiskelija' , joissa on nimi, ikä, kurssi ja lukukausi. Luomme konstruktorin, jossa asetamme arvot näille muuttujille. Konstruktorin jälkeen luomme menetelmän, joka näyttää kaikkien muuttujien arvon luokan jokaiselle esiintymälle.
Lähtö:
Esimerkki 5: Luokan esiintymän luominen
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();
Kuvaus:
yksinkertainen java ohjelma
Yllä olevassa koodissa luomme kaksi esiintymää luokasta ja välitämme arvon rakentajalle kaikille luokkamuuttujille. Seuraavaksi suoritamme Jshell-komennon tarkistaaksemme, luodaanko s1- ja s2-muuttujat vai ei. Lopuksi kutsumme showData()-menetelmää näyttämään kunkin esiintymän tiedot.
Lähtö: