JShell е обвивка от команден ред за изпълнение на Java код. В по-ранна статия, „Използване на JShell в Java 9 в NetBeans 9.0, част 1“, обсъдихме стартирането на JShell в NetBeans 9. Тествахме някои кодови фрагменти за импортиране на класове и създаване и използване на променливи изрично. В тази статия-продължение ще обсъдим създаване и използване на променливи имплицитно, извършване на сравнения на низове и изпълнение на Java оператори. Тази статия има следните раздели:
- Деклариране и използване на променливи (продължение)
- Сравнение на низове
- Използване на изявления
- Нулиране на обвивката на Java
- Заключение
Деклариране и използване на променливи (продължение)
В първата от двете статии обсъдихме изричното деклариране и използване на променливи. След това ще обсъдим имплицитното деклариране и използване на променливи.
Неявно създаване на променлива
Създаването на променлива имплицитно и съхраняването й в сесия на JShell е функция, уникална за JShell, тъй като файлът с изходен код на Java не поддържа посочване на изрази, които се съхраняват имплицитно като променливи. Като пример добавете следния кодов фрагмент, който е само числото 1.
1
Променлива се създава имплицитно, както е показано на фигура 1. По подразбиране, имплицитно създадената променлива има името $x , в което x е идентификаторът на променливата. Добавяне на 1 създава променливата $1 , както е показано на фигура 1, но идентификаторът на променливата е произволен до известна степен, тъй като първият избор може вече да се използва от друга променлива.
Фигура 1: Неявно създаване на променлива
Новата променлива $1 може да бъде извикан в JShell за извеждане на стойността му, както е показано на фигура 2.
Фигура 2: Извикване на имплицитна променлива
Всеки израз, който дава стойност, се съхранява в променлива. Като пример, добавянето на две числа създава променлива имплицитно.
[5]-> 1+0 | $4 ==> 1
Неявната променлива може да бъде извикана в JShell.
[6]-> $4 | $4 ==> 1
Неявната променлива може да се използва в друг кодов фрагмент. Като пример добавете двете неявни променливи $1 и $4 и се създава трета имплицитна променлива.
[7]-> $1+$4 | $8 ==> 2
Резултатът от предходните команди е показан на Фигура 3.
Фигура 3: Използване на неявни променливи
Извикване на константи на клас като Math.PI също създава имплицитна променлива, както е показано на фигура 4.
Фигура 4: Създаване на имплицитна променлива чрез извикване на константа на клас
Стринг literal също създава имплицитна променлива (виж фигура 5). Създадената имплицитна променлива може да се използва в друг кодов фрагмент; като пример в System.out.println изявление. Неявната променлива също може да бъде извикана директно.
Фигура 5: Създаване на имплицитна променлива от низов литерал
Примитивните преобразувания за стесняване и разширяване се извършват, ако е необходимо в JShell. Като пример, добавяне на int с десетично число извършва разширяващо преобразуване и създава неявна променлива с десетично число, както е показано на фигура 6.
Фигура 6: Извършване на разширяващо примитивно преобразуване
Стринг конкатенацията също създава неявни променливи. Като пример, конкатенирайте два String литерали.
"Hello"+" "+"JShell"
Създава се неявна променлива. Всеки от Стринга методи на клас, като length() и подниз(int,int) , може да бъде извикан върху имплицитно създадената променлива, както е показано на Фигура 7.
Фигура 7: Извикване на методи за неявна променлива
В JShell могат да се създават променливи от всякакъв тип. Като пример създайте променливи от тип char , float и двойни в допълнение към int тип.
[1]-> int a=1; | a ==> 1 [2]-> int b=5; | b ==> 5 [3]-> char c='a'; | c ==> 'a' [4]-> float f=1.0f; | f ==> 1.0 [5]-> double d=5.0d; | d ==> 5.0
Като има предвид, че /list командата изброява всички кодови фрагменти, /vars командата в JShell изброява само променливите.
[6]-> /vars | int a = 1 | int b = 5 | char c = 'a' | float f = 1.0 | double d = 5.0
По-рано обсъдихме израз, в който в JShell се прави имплицитно разширяващо се примитивно преобразуване. Стеснителни и разширяващи примитивни преобразувания също се правят при присвояване. Като пример за стеснително примитивно преобразуване, задайте променливата c от тип char int стойност.
[6]-> c=5;| c ==> '