Java 9 REPL (JShell): интерактивное кодирование и тестирование
REPL — Read-Eval-Print Loop. JShell даёт Java интерактивную оболочку: пишете код, сразу видите результат, без компиляции через javac.
Запуск JShell
$ jshell
| Welcome to JShell -- Version 9-ea
| For an introduction type: /help intro
jshell>
Команды JShell (/help)
jshell> /help
| Type a Java language expression, statement, or declaration.
| Or type one of the following commands:
| /list [|-all|-start] | list source you have typed
| /edit | edit a source entry
| /drop | delete a source entry
| /save [-all|-history|-start] | Save snippet source to a file
| /open | open a file as source input
| /vars [|-all|-start] | list declared variables and values
| /methods [|-all|-start]| list declared methods and signatures
| /types [|-all|-start] | list declared types
| /imports | list imported items
Примеры работы
Импорты по умолчанию
jshell> /imports
| import java.io.*
| import java.math.*
| import java.net.*
| import java.nio.file.*
| import java.util.*
| import java.util.concurrent.*
| import java.util.function.*
| import java.util.prefs.*
| import java.util.regex.*
| import java.util.stream.*
Вычисления
jshell> 3+1
$1 ==> 4
jshell> 13%7
$2 ==> 6
jshell> $2
$2 ==> 6
Создание функции
jshell> int doubled(int i){ return i*2;}
| created method doubled(int)
jshell> doubled(6)
$3 ==> 12
Выход
jshell> /exit
| Goodbye
JShell идеален для быстрой проверки идей, обучения и прототипирования.
java
- Освоение операторов Java: типы, синтаксис и практические примеры
- Комментарии в Java: типы, использование и лучшие практики
- Освоение улучшенного цикла for в Java: синтаксис, примеры и лучшие практики
- Освоение строк в Java: создание, методы и лучшие практики
- Интерфейсы в Java: концепции, реализация и лучшие практики
- Анонимные внутренние классы в Java: определение, синтаксис и практические примеры
- Try-with-resources в Java: автоматическое управление ресурсами
- Аннотации в Java: типы, размещение и практические примеры
- Assertions в Java: практическое руководство по обнаружению багов и обеспечению надежности кода
- Понимание Java Vector: использование, особенности и сравнение с ArrayList