### 定义变量

变量可以理解为日常生活中的一个容器，例如箱子，它可以装衣服、金银首饰、图书、旅行用品等，关键时刻还可以藏人，总之变量的内容是可以改变的。变量的使用是程序设计中一个十分重要的环节，经常被使用，例如，如图 1 所示。

图 1 Java 文件中变量的使用

为什么要定义变量呢？简单的说，就是要告诉编译器（compiler）这个变量是属于哪一种数据类型，这样编译器才知道需要配置多少空间给它，以及它能存放什么样的数据。在程序运行过程中，空间内的值是变化的，所以称为变量。为了便于操作，给这个空间取个名字，称为变量名，内存空间内的值就是变量值。如图 2 所示。

图 2 变量值与变量名的区别

变量的命名必须是合法的标识符。在声明变量时可以不为其赋值，也可以直接赋初值。

例 声明变量，实例代码如下：

int age; //声明 int 型变量

char char1 = 'r'; //声明 char 型变量并赋值

编写以上程序代码，究竟会产生什么样的作用呢？要了解这个问题，就需要对变量的内存配置有一定的认识。笔者用图解的方式，将上例程序代码在内存中的状况表现出来，如图 3 所示。

图 3 变量占用的内存空间

由图 1 可知，系统的内存可大略的分为 3 个区域：系统区（OS）、程序区（Program）、数据区（Data）。当程序执行时，程序代码会加载到内存中的程序区，数据暂时存储在数据区中。假设上述两个变量定义在方法体中，则程序加载到程序区中。当执行此行程序代码时，会在数据区配置空间给这两个变量

对于变量的命名并不是任意的，应遵循以下几条规则。

l 变量名必须是一个有效的标识符。

l 变量名不可以使用 Java 中的关键字。

l 变量名不能重复。

l 应选择有意义的单词作为变量名。

说明：在Java语言中允许使用汉字或其他语言文字作为变量名。如“int 年龄 = 21”，在程序运行时并不出现什么错误，但建议读者尽量不要使用这些语言文字作为变量名。