一个 Java 程序通常由数据类型、变量、运算符和控制流程语句4部分组成。其中数据类型和运算符不仅定义了语言的规范,还决定了可以执行什么样的操作,变量是用来存储指定类型的数据,其值在程序运行期间是可变的;与变量对应的是常量,其值是固定的。
Java常量的定义和分类
常量是指在程序的整个运行过程中值保持不变的量。
常量和常量值是不同的概念,常量值是常量的具体和直观的表现形式,常量是形式化的表现。
通常在程序中既可以直接使用常量值,也可以使用常量。
常量值
常量值又称为字面常量,它是通过数据直接表示的,因此有很多种数据类型,像整型和字符串型等。
整型常量值
Java 的整型常量值主要有如下 3 种形式:
- 十进制数形式:如 54、-67、0。
- 八进制数形式:Java 中的八进制常数的表示以 0 开头,如 0125 表示十进制数 85,-013 表示十进制数 -11。
- 十六进制数形式:Java 中的十六进制常数的表示以 0x 或 0X 开头,如 0x100 表示十进制数 256。
整型(int)常量默认在内存中占 32 位,是具有整数类型的值,当运算过程中所需值超过 32 位长度时,可以把它表示为长整型(long)数值。长整型类型则要在数字后面加 L 或 1, 如 697L,表示一个长整型数,它在内存中占 64 位。
实型常量值
Java 的实型常量值主要有如下两种形式:
- 十进制数形式:由数字和小数点组成,且必须有小数点,如 12.34、-98.0。
- 科学记数法形式:如 1.75e5 或 32&E3,其中 e 或 E 之前必须有数字,且 e 或 E 之后的数字必须为整数。
Java 实型常量默认在内存中占 64 位,是具有双精度型(double)的值。
如果考虑到需要节省运行时的系统资源,而运算时的数据值取值范围并不大且运算精度要求不太高的情况,可以把它表示为单精度型(float)的数值。
单精度型数值一般要在该常数后面加 F 或 f,如 69.7f,表示一个 float 型实数,它在内存中占 32 位(取决于系统的版本高低)。
布尔型常量值
Java 的布尔型常量只有两个值,即 false(假)和 true(真)。
字符型和字符串常量值
Java 的字符型常量值是用单引号引起来的一个字符,如 'e'、E'。需要注意的是,Java 字符串常量值中的单引号和双引号不可混用。双引号用来表示字符串,像 "11"、"d" 等都是表示单个字符的字符串。
注意:这里表示字符和字符串的单引号和双引号都必须是英语输入环境下输入的符号。
除了以上所述形式的字符常量值之外,Java 还允许使用一种特殊形式的字符常量值来表示一些难以用一般字符表示的字符,字母前面加上捺斜线"\"来表示常见的那些不能显示的ASCII字符.称为转义字符。
常用的转义字符和所对应的意义:
转义字符 | 意义 | ASCII码值(十进制) |
\a | 响铃(BEL) | 007 |
\b | 退格(BS) ,将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
\r | 回车(CR) ,将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
\v | 垂直制表(VT) | 011 |
\\ | 代表一个反斜线字符''\' | 092 |
\' | 代表一个单引号(撇号)字符 | 039 |
\" | 代表一个双引号字符 | 034 |
\0 | 空字符(NULL) | 000 |
\ddd | 1到3位八进制数所代表的任意字符 | 三位八进制 |
\xhh | 1到2位十六进制所代表的任意字符 | 二位十六进制 |
常量的定义
常量不同于常量值,它可以在程序中用符号来代替常量值使用,因此在使用前必须先定义。
Java 语言使用 final 关键字来定义一个常量,其语法如下所示:
1. final dataType variableName
其中,final 是定义常量的关键字,dataType 指明常量的数据类型,variableName 是变量的名称。
以下语句使用 final 关键字声明常量:
1. final int COUNT=10;
2. final float HEIGHT=10.2f;
在定义常量时,需要注意如下内容:
- 在定义常量时就需要对该常量进行初始化。
- final 关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。
- 为了与变量区别,常量取名一般都用大写字符。
当常量被设定后,一般情况下不允许再进行更改,如果更改其值将提示错误。
常量和变量是 Java 程序中最基础的两个元素。常量的值是不能被修改的,而变量的值在程序运行期间可以被修改。
变量的声明
对开发人员来说,变量是用来描述一条信息的别名,可以在程序代码中使用一个或多个变量。变量中可以存储各种类型的信息,如登录信息、版本名称、文件的大小、某个英文单词以及飞机票价格等。
在 java 中用户可以通过指定数据类型和标识符来声明变量,其基本语法如下所示:
1. DataType identifier;
或
1. DataType identifier=value;
上述语法代码中涉及 3 个内容:DataType、 identifier 和 value,其具体说明如下:
- DataType:变量类型,如 int、string、 char 和 double 等。
- identifier:标识符,也叫变量名称。
- value:声明变量时的值。
变量标识符的命名规范如下:
- 首字符必须是字母、下划线(―)、美元符号($)或者人民币符号(¥)。
- 标识符由数字(0~9)、大写字母(A~Z)、小写字母(a~z)、下划线(―)、美元符号($)、人民币符号(¥)以及所有在十六进制 0xc0 前的 ASCII 码组成。
- 不能把关键字、保留字作为标识符。
- 标识符的长度没有限制。
- 标识符区分大小写。
如下代码分别声明了 String、boolean 和 int 类型的变量:
1. String employee; //String 类型的变量
2. boolean isSave; //boolean 类型的变量
3. int create_at; //int 类型的变量
变量的赋值
初始化变量是指为变量指定一个明确的初始值。初始化变量有两种方式:一种是声明时直接赋值,一种是先声明、后赋值。如下代码分别使用两种方式对变量进行了初始化:
1. char usersex='女'; //直接赋值
或者
1. String username; //先声明
2. username ="琪琪"; //后赋值
另外,多个同类型的变量可以同时定义或者初始化,但是多个变量中间要使用逗号分隔,声明结束时用分号分隔:
1. String username,address,phone,tel; //声明多个变量
2. int num1=12,num2=23,result=35; //声明并初始化多个变量
Java 中初始化变量时需要注意以下事项:
- 变量是类或者结构中的字段,如果没有显式地初始化,默认状态下创建变量并默认初始值为 0。
- 方法中的变量必须显式地初始化,否则在使用该变量时就会出错。
变量的作用域
变量作用域规定了变量所能使用的范围,只有在作用域范围内变量才能被使用。据变量声明地点的不同,变量的作用域也不同。
根据作用域的不同,一般将变量分为不同的类型:类变量、局部变量、方法参数变量及异常处理参数变量。
类变量
类变量也称为成员变量,声明在类中,不属于任何一个方法,作用域是整个类。
局部变量
局部变量是指在方法或者方法代码块中定义的变量,其作用域是其所在的代码块。
方法参数变量
作为方法参数声明的变量的作用域是整个方法。
异常处理参数变量
异常处理参数变量的作用域是在异常处理块中,该变量是将异常处理参数传递给异常处理块,与方法参数变量类似。