在程序执行过程中,其值不能改变的量称为常量,反之能改变的量则称为变量。变量与常量的命名都必须使用合法的标识符,且尽量遵循命名规范。定义变量或常量的过程,就是告诉编译器(compiler) 其数据类型,这样编译器才知道需要配置多少空间给它,以及它能存放什么样的数据。
1. 标识符
标识符可以简单理解为一个名字,用来标识类名、变量名、方法名、数组名、文件名的有效字符串。需要注意的是,Java 中标识符是严格区分大小写的,像 SQL 语言则是不区分大小写。
Java 语言规定标识符由任意顺序的字母、下划线(_
)、美元符号($
)和数字组成,其命名规则遵循如下规范:
- 不要(避免)使用 JAVA 关键字,例如
class
、public
、int
、static
等 - 不可以是数字开头
- 不要(避免)使用汉字
- 变量名不可以包含空格
-
$
和_
可以使用,但是不建议作为变量名开头 - 以驼峰式进行变量的命名,即首字母小写,后续单词首字母大写
- 常量名的定义采用全部字母大写
2. 关键字
关键字是 Java 语言中已经被赋予特定意义的一些单词,不可以把这些字作为标识符来使用, Java 中的关键字(53 个)如下表所示:
数据类型 | 修饰符 | 流程控制 | 异常 | 类/接口 | 线程 | 其他 |
---|---|---|---|---|---|---|
int | public | if | throw | void | volatile | package |
boolean | private | else | throws | return | synchronized | import |
float | protected | switch | finally | class | instanceof | |
long | abstrct | case | try | extends | true | |
short | static | while | catch | new | false | |
char | final | do | assert | this | null | |
byte | strictfp | for | super | goto* | ||
double | native | break | implements | const* | ||
enum | continue | interface | ||||
default | transient |
3. 声明变量
变量名的命名与标识符命名的规则一样,额外需要注意遵循以下 2 条规则:
- 必须是一个有效的标识符
- 不可以使用
public class Variables{
public static void main(String[] args){
int age;
int i = 10;
byte b = 12;
short s = 12;
long l = 17L; // 17l
float f = 12.2F; // 12.2f
double d = 13.3D; // 13.3d
char c = 'a';
boolean flag = true;
System.out.println(i);
System.out.println(b);
System.out.println(s);
System.out.println(l);
System.out.println(f);
System.out.println(d);
System.out.println(c);
System.out.println(flag);
}
}
上述示例可以看到,在定义
long
、float
以及double
时,具体加上数据类型的标识L
、F
、D
(这里不区分大小写)。
除此之外,还有一个字符串String
类型,它并不属于 Java 的基础数据类型,其实String
是一个构造器。
String str = "abc";