变量#

变量(Variable)是具有固定类型、负责存储值的位置。

创建变量#

通过类型 标识符声明新变量。标识符不得与使用过的重复。

声明变量后,变量的类型不会且不能改变。

访问变量前需先初始化。通过标识符 = 表达式初始化新变量。

声明和初始化可同时进行,语法为类型 标识符 = 表达式

输入int i = 42,此时 JShell 就保存了变量i

赋值#

通过标识符 = 表达式修改已有变量,这种操作叫做赋值,属于二元表达式,其中的等号叫做简单赋值操作符(Simple assignment operator)。

输入i = 43,此时i的值为43

Java 允许在=前加上二元操作符,组成复合赋值操作符(Compound assignment operator),进行计算并赋值。

输入i += 2,此时i的值为45

自增、自减#

一元操作符++--可对数值类型的变量进行自增、自减操作。

自增、自减操作符放在变量的前面和后面,执行方式不同:前缀操作符先加减、后返回;后缀操作符先返回、后加减。

jshell> i++
$1 ==> 45

jshell> ++i
$2 ==> 47

访问#

变量可作为表达式使用。

尝试:输入以下代码,计算结果:

String s = "Hello Java "
int i = 23
s + i

不变量#

声明变量时在类型前添加final可声明final变量。final变量只能赋值一次。

输入final String s = "Hello"。此时如果执行s = "world",JShell 仍会修改常量的值,这是因为 JShell 不检查变量是否不可修改。

JShell 中的临时变量#

你是否注意到每次输入表达式后,返回的结果左边有类似于$n ==>这样的提示?这是因为 JShell 能保存输入的表达式的值。我们可以按一般的变量访问这些临时变量。

jshell> 1 + 1
$1 ==> 2

jshell> "result = " + $1
$2 ==> "result = 2"