• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

Java 9: programmazione interattiva con JShell

By Giuseppe Maggi | on 6 Giugno 2018 | 0 Comment
Senza categoria

Una delle principali novità di Java 9 è JShell, una shell interattiva alla quale si può inviare direttamente comandi in linguaggio Java ed ottenere delle risposte. Si tratta di un ambiente REPL (Read-Eval-Print-Loop), caratteristica che tanti altri linguaggi hanno da sempre: un esempio su tutti Python.

Per utilizzarla, è necessario invocare il comando jshell, disponibile nella cartella bin del JDK (solo se versione 9):

>jshell
|  Welcome to JShell -- Version 9
|  For an introduction type: /help intro

jshell>

Una volta avviato, si viene accolti da un messaggio come quello mostrato dopodichè si può iniziare a digitare comandi. Provando il più classico degli esempi, si può immettere il testo System.out.println(“Hello world!”):

jshell> System.out.println("Hello world!")
Hello world!

e, in pieno stile REPL, eseguire operazioni immediate:

jshell> 25*4
$2 ==> 100

jshell> 71-43
$3 ==> 28

jshell> 5%2
$4 ==> 1

Si noti che non solo sono stati emessi i risultati direttamente ma sono stati anticipati da un identificatore composto da un simbolo $ ed un numero ($2, $3, $4). Quelle sono variabili implicite create allo scopo di contenere valori frutto di elaborazione e possono essere invocate per riutilizzarli. Ad esempio, $2+$3 eseguirà la somma di 100 e 28 e ne restituirà il risultato, 128:

jshell> $2+$3
$5 ==> 128

Si possono utilizzare anche oggetti e metodi proprio come siamo abituati a fare nel codice Java ordinario:

jshell> String frase="Questa è la nostra prima prova con JShell"
frase ==> "Questa è la nostra prima prova con JShell"

jshell> frase.length()
$7 ==> 41

jshell> frase.toUpperCase()
$8 ==> "QUESTA È LA NOSTRA PRIMA PROVA CON JSHELL"

jshell> frase.substring(12)
$9 ==> "nostra prima prova con JShell"

In questo caso, abbiamo definito una stringa ed invocato su di essa metodi appartenenti alla classe String. Ogni risultato fornito continua ad essere applicato ad una variabile, a meno che non ne esista già una esplicita che lo contiene come per il caso di frase. Volendo possiamo continuare ad utilizzare le variabili implicite ottenute:

jshell> $9.length()
$10 ==> 29

jshell> $9.toUpperCase()
$11 ==> "NOSTRA PRIMA PROVA CON JSHELL"

jshell> $9.endsWith("ell")
$12 ==> true

I comandi possono essere composti da più righe come nel seguente caso in cui eseguiamo un ciclo per la stampa di alcuni numeri. JShell riconoscerà quando la direttiva è terminata e deve essere eseguita:

jshell> for(int i=0; i<10; i++)
   ...> System.out.println("#"+i)
#0
#1
#2
#3
#4
#5
#6
#7
#8
#9

Una delle applicazioni principali di JShell è l’impiego di Stream API ed espressioni Lambda (le novità di Java 8) che con la loro sintassi estremamente sintetica permettono di svolgere molte operazioni nello spazio di una riga:

jshell> Stream.of(12, 56, 8, 34, 20).filter(x -> x>=20).sorted().forEach(System.out::println)
20
34
56

Il comando precedente, ad esempio:

  • crea uno Stream composto dai valori 12, 56, 8, 34 e 20;
  • li filtra mantenendo solo quelli che valgono almeno 20;
  • li ordina in senso crescente;
  • li stampa uno per uno.

Come si vede, l’espressività di Java a partire dalla versione 8 sposa perfettamente l’immediatezza di un ambiente REPL.

JShell è destinato ad occupare sempre più spazio nella vita degli sviluppatori, anche in ambienti didattici dove l’immediatezza di un ambiente REPL può essere un ottimo modo per avvicinare appassionati e neofiti.

Alla prossima con tante altre novità del linguaggio Java!

 

Share this story:
  • tweet

Tags: javajava 9jshellreplTutorial Pratici

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment
  • Stringhe in Kotlin

    23 Agosto 2018 - 0 Comment

Author Description

No Responses to “Java 9: programmazione interattiva con JShell”

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO