Explorando o JShell no Java
O JShell, introduzido no Java 9, é uma ferramenta de linha de comando que permite, portanto, executar código Java de forma interativa. Além disso, ele segue o conceito de REPL (Read-Eval-Print Loop), tornando mais fácil, assim, testar trechos de código, prototipar soluções e aprender a linguagem Java sem precisar configurar um ambiente de desenvolvimento completo.
Vantagens do JShell
- Feedback Imediato: Execute comandos e veja os resultados instantaneamente.
- Testes Rápidos: Teste pequenos trechos de código sem criar classes ou métodos principais.
- Aprendizado Simples: Ideal para iniciantes explorarem a linguagem Java.
- Prototipagem: Crie e refine soluções rapidamente antes de integrá-las em um projeto maior.
Primeiros Passos com o JShell
Abrindo o JShell
Certifique-se de ter o Java 9 ou superior instalado. Abra o terminal e digite:
jshell
Você deve ver uma saída similar a esta:
| Welcome to JShell -- Version 9 | For an introduction type: /help intro</p>
Executando Comandos Simples
Testar operações matemáticas:
jshell> 2 + 3 $1 ==> 5 jshell> "Java " + "9" $2 ==> "Java 9"
Exemplos de Uso Prático
1. Declarar Variáveis
jshell> int x = 10; x ==> 10 jshell> x + 5 $3 ==> 15
2. Criar Métodos
jshell> int soma(int a, int b) { return a + b; } | created method soma(int, int) jshell> soma(4, 7) $4 ==> 11
3. Trabalhar com Classes
jshell> class Pessoa { String nome; int idade; Pessoa(String nome, int idade) { this.nome = nome; this.idade = idade; } } | created class Pessoa jshell> Pessoa p = new Pessoa("João", 25); p ==> Pessoa@1a2b3c jshell> p.nome $5 ==> "João"
Comandos Úteis no JShell
- /vars: Lista todas as variáveis declaradas.
- /methods: Lista todos os métodos criados.
- /classes: Lista todas as classes definidas.
- /imports: Exibe os pacotes importados atualmente.
- /exit: Sai do JShell.
Exemplo:
jshell> /vars | int x = 10
Configuração e Melhores Práticas
Importar Pacotes Necessários
Você pode importar pacotes no JShell da mesma forma que faria em um arquivo Java:
jshell> import java.util.*;
Salvar e Carregar Sessões
Para salvar o trabalho feito no JShell:
jshell> /save caminho/para/arquivo.jsh
Para carregar um arquivo salvo:
jshell> /save caminho/para/arquivo.jsh</p>
Para carregar um arquivo salvo:
jshell> /open caminho/para/arquivo.jsh</p>
Configurar Alias para Comandos Frequentes
Use o comando /set para configurar atalhos:
jshell> /set feedback concise
Exemplos de Código Mais Avançados
Trabalhando com Streams
jshell> List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5); numeros ==> [1, 2, 3, 4, 5] jshell> numeros.stream().filter(n -> n % 2 == 0).forEach(System.out::println); 2 4
Manipulação de Arquivos
jshell> import java.nio.file.*; jshell> Files.writeString(Path.of("teste.txt"), "Conteúdo do arquivo"); jshell> String conteudo = Files.readString(Path.of("teste.txt")); conteudo ==> "Conteúdo do arquivo"
Gráficos ou Imagens Recomendados
- Fluxograma: Mostrando o ciclo de REPL (Read, Eval, Print, Loop).
- Captura de Tela: Uma sessão do JShell com exemplos de códigos interativos.