在程序执行过程中,其值不能改变的量称为常量,反之能改变的量则称为变量。变量与常量的命名都必须使用合法的标识符,且尽量遵循命名规范。定义变量或常量的过程,就是告诉编译器(compiler) 其数据类型,这样编译器才知道需要配置多少空间给它,以及它能存放什么样的数据。

1. 标识符

标识符可以简单理解为一个名字,用来标识类名、变量名、方法名、数组名、文件名的有效字符串。需要注意的是,Java 中标识符是严格区分大小写的,像 SQL 语言则是不区分大小写。

Java 语言规定标识符由任意顺序的字母、下划线(_)、美元符号($)和数字组成,其命名规则遵循如下规范:

  • 不要(避免)使用 JAVA 关键字,例如 classpublicintstatic
  • 不可以是数字开头
  • 不要(避免)使用汉字
  • 变量名不可以包含空格
  • $_可以使用,但是不建议作为变量名开头
  • 以驼峰式进行变量的命名,即首字母小写,后续单词首字母大写
  • 常量名的定义采用全部字母大写

    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 条规则:

  • 必须是一个有效的标识符
  • 不可以使用
  1. public class Variables{
  2. public static void main(String[] args){
  3. int age;
  4. int i = 10;
  5. byte b = 12;
  6. short s = 12;
  7. long l = 17L; // 17l
  8. float f = 12.2F; // 12.2f
  9. double d = 13.3D; // 13.3d
  10. char c = 'a';
  11. boolean flag = true;
  12. System.out.println(i);
  13. System.out.println(b);
  14. System.out.println(s);
  15. System.out.println(l);
  16. System.out.println(f);
  17. System.out.println(d);
  18. System.out.println(c);
  19. System.out.println(flag);
  20. }
  21. }

上述示例可以看到,在定义longfloat以及double时,具体加上数据类型的标识LFD(这里不区分大小写)。

除此之外,还有一个字符串String类型,它并不属于 Java 的基础数据类型,其实String是一个构造器。

  1. String str = "abc";

4. 定义常量