Рубрики
Без рубрики

jshell – Оболочка Java

оболочка, оболочка Java, учебник по оболочке, ОТВЕТ на Java, Java 9 jshell, загрузка jshell, пример jshell, оболочка Java 9, учебник по Java 9 jshell, учебник по оболочке java

Автор оригинала: Pankaj Kumar.

Ранее мы рассмотрели основы Java REPL, т. е. j-оболочки. Сегодня мы узнаем еще о некоторых функциях jshell или java-оболочки.

jshell

оболочка или оболочка Java была введена в Java 9, чтобы помочь разработчикам быстро запускать короткие программы, не вдаваясь в хлопоты по созданию классов, основного метода и т.д. Мы можем просто объявлять переменные, писать операторы и выполнять их в оболочке. Мы также можем скомпилировать класс для текущего сеанса оболочки, а затем использовать его в следующих инструкциях. В этом уроке мы рассмотрим еще некоторые функции оболочки.

особенности оболочки

Оболочка Java или оболочка поддерживает следующие функции:

  1. Мы можем использовать его в качестве интерактивного инструмента для оценки деклараций, операторов, выражений и т.д. языка программирования java.
  2. Мы можем видеть историю наших предыдущих команд.
  3. оболочка поддерживает функцию заполнения вкладок.
  4. Оболочка Java автоматически добавляет точки с запятой, поэтому нам не нужно добавлять их явно.
  5. Мы можем настроить импорт по умолчанию в соответствии с вашими требованиями.
  6. Мы можем настроить определения по умолчанию в соответствии с вашими требованиями.

Мы рассмотрим эти функции одну за другой в следующих разделах с некоторыми полезными примерами.

Арифметические операции оболочки Java

Мы можем выполнять арифметические операции в оболочке, как показано в приведенном ниже примере.

jshell> 10+5
$1 ==> 15

jshell> 10/5
$2 ==> 2

jshell> 10/3
$3 ==> 3

jshell> 10.0/3
$4 ==> 3.3333333333333335

jshell> 10*5
$5 ==> 50

jshell>

Если мы посмотрим на приведенное выше изображение, мы увидим, что очень легко тестировать арифметические операции в оболочке Java. Мы можем записать их как простые математические выражения и получить результаты, также не нужно использовать точки с запятой.

Внутренние Переменные оболочки Java

Если мы снова пройдемся по изображению предыдущего раздела, мы сможем четко увидеть следующий вывод кода:

jshell> 10+5
$1 ==> 15

Здесь jshell присваивает новую внутреннюю переменную “$1” для хранения значения результата арифметической операции”+”. Результаты дальнейших операций также присваиваются переменным $2, $3 и так далее. Вы можете получить доступ к этим значениям переменных, введя их имя в оболочке java.

У меня есть к вам один короткий вопрос. Внутренние переменные оболочки java являются окончательными или неизменяемыми? т. Е. Мы не можем изменить их значение?

Давайте выясним это на простом примере.

jshell> $1
$1 ==> 15

jshell> $1=20
$1 ==> 20

jshell> System.out.print("$1 value now = "+$1)
$1 value now = 20
jshell> 

Таким образом, эти внутренние переменные изменчивы, мы можем изменять их значения, как показано в приведенном выше коде. Также обратите внимание, что мы можем использовать эти переменные в операторах java, как и любую другую переменную.

вкладка оболочки-Функция завершения

Оболочка Java поддерживает клавишу tab очень удобным способом, чтобы избежать ввода большого количества символов и сэкономить время разработчиков. Это похоже на поддержку IDE для автоматического заполнения имени переменной, функции или класса.

Давайте рассмотрим эту функцию сейчас с помощью ответа. Просто введите пару символов и нажмите клавишу “Tab” с клавиатуры, она предоставит вам доступные подсказки для выбора. Если попаданий больше, он отображает их все, как показано ниже. Поэтому введите еще несколько символов, чтобы избежать конфликтов.

На рисунке ниже показан пример функции завершения вкладки оболочки.

Типы Импорта оболочки Java

Оболочка Java автоматически импортирует некоторые пакеты, чтобы помочь нам. Мы можем использовать команду /imports для перечисления всех пакетов, импортированных по умолчанию.

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>

Мы можем использовать любой класс из этих пакетов, не импортируя их явно. Вот почему мы можем использовать математический класс без его импорта, как показано в примере ниже.

jshell> Math.max(5,10)
$11 ==> 10

jshell> Math.min(5,10)
$12 ==> 5

Однако, если мы хотим протестировать любой другой класс или интерфейс, связанный с пакетом, нам необходимо использовать внешний импорт. В противном случае мы получим ошибку, как показано в приведенном ниже фрагменте кода:

jshell> ByteBuffer buf = ByteBuffer.allocate(48);
|  Error:
|  cannot find symbol
|    symbol:   class ByteBuffer
|  ByteBuffer buf = ByteBuffer.allocate(48);
|  ^--------^
|  Error:
|  cannot find symbol
|    symbol:   variable ByteBuffer
|  ByteBuffer buf = ByteBuffer.allocate(48);
|                   ^--------^
jshell>

Нам нужно использовать инструкцию import, как показано ниже, чтобы импортировать весь пакет или определенный класс.

jshell> import java.nio.ByteBuffer

jshell> ByteBuffer buf = ByteBuffer.allocate(48);
buf ==> java.nio.HeapByteBuffer[pos=0 lim=48 cap=48]

jshell> 

Здесь мы можем успешно создать объект ByteBuffer без каких-либо проблем, поскольку мы импортировали этот класс вручную.

Это все о jshell или java-оболочке. Я полюбил этот инструмент, потому что он помогает мне экономить время, быстро выполняя небольшой тестовый код.

Ссылка: Документация Oracle