模式切换
变量与常量
在程序执行的过程中,其值不能被改变的量称为常量,其值可以被改变的量称为变量。
标识符和关键字
标识符
在 Java 中,所有的变量、方法和类都需要有一个名字,这个名字就是标识符。标识符可以由字母、数字、下划线和美元符号组成,但是不能以数字开头并且不能是 Java 的保留关键字。
java
// 合法的标识符
name
user_name
$money
// 非法的标识符
1name
String
User name
在 Java 中,标识符是大小写敏感的,即 name
和 Name
是两个不同的标识符。Java 语言使用 Unicode 字符集,最多可以使用 65535 个字符。因此 Java 语言中的字母不仅包括常用的拉丁文字 a、b、c 等,还包括汉字、日文以及其他语言中的文字。
关键字
Java 语言中有一些具有特殊含义的单词,这些单词称为关键字。关键字是 Java 语言的保留字,不能用作标识符。Java 语言中的关键字如下:
表 Java 关键字
声明变量
变量的使用是程序设计中的一个十分重要的环节,定义变量就是要告诉编译器这个变量的数据类型,这样编译器才能为这个变量分配合适的内存空间,以及能存放什么类型的数据。在程序运行过程中,空间内的值发生变化的量称为变量。为了便于操作,给变量起一个名字,这个名字就是变量名。变量名必须是合法的标识符。 内存空间内的值就是变量的值。在声明变量时可以给变量赋初值,也可以不赋值。
对于变量的命名,应该遵循以下规则:
- 变量名必须是合法的标识符,即由字母、数字、下划线和美元符号组成,但是不能以数字开头并且不能是 Java 的保留关键字。
- 变量名不能重复。
- 变量名应该具有描述性,见名知义,能够清晰地表达变量的用途。
java
int a = 10;
String b;
声明常量
Java 中的常量通常指的是用 final 关键字修饰的变量。基本数据类型的 final 变量一旦初始化后,其值不能改变。如果是对象引用,final 变量指向的对象不能变,但对象内部的状态可能可以改变。例如,final List
虽然不能指向其他 List,但可以添加元素。
java
final int MAX_VALUE = 100;
当 final 修饰的变量为成员变量时,则需要在声明时初始化,或者在构造方法中初始化,否则会报错。
变量的有效范围
变量的有效范围是指变量的作用域,即变量在程序中可以被访问的范围。在 Java 中,变量的有效范围有分为:成员变量和局部变量。
成员变量
成员变量是定义在类中,方法外的变量,也称为全局变量。成员变量的作用域是整个类,可以被类中的所有方法访问。
java
public class Main {
int a = 10;
static int b = 20;
public void test() {
System.out.println(a);
}
}
其中,a
是成员变量,b
是静态变量(也称为类变量)。静态变量的作用范围可以跨类,设置可达到整个应用程序之内。除了能在定义它的类中使用,还能直接以 类名.静态变量名
的方式使用。
局部变量
局部变量是定义在方法中的变量,也称为局部变量。局部变量的作用域是从声明处开始,到所属的块结束。局部变量只能在声明它的方法中使用。局部变量的生命周期取决于所属方法的生命周期,当方法执行完毕后,局部变量就会被销毁。
java
public class Main {
public void test() {
int a = 10;
System.out.println(a);
}
}
局部变量名称可以与成员变量相同,此时成员变量会被局部变量覆盖,在此方法中暂时失效。
图 变量的有效范围