——常量
常量:编译的时候确定了他的值,在运行过程中不能改变
1.文本常量
代码中出现的文本形式常数,即文本常量,通常用来表示简单类型、String类型和null类型的值。
2.整型常量
整数字符串通常解释为int类型。如果加后缀L(大写字母L,也可使用小写字母l,但小写字母l容易与数字1混淆,故不建议使用),则解释为long类型。例如:
int int1 = 123; //整型常量123为int型
long long1 = 123L; //整型常量123L为long型
整型常量:
数制 | 前缀 | 有效数值 | 示例 |
---|---|---|---|
十进制(以10为基数) | 0~9 | 0、1、2、7、8、10、11、15、16、99、100、999 | |
十六进制(以16为基数) | 0x(或0X) | 0 ~ 9和A ~ F或0 ~ 9和a ~ f | 0x0、0x1、0x2、0x7、0x8、0xa、0xb、0xf、0x10、0x63、0x64、0x3e7 |
八进制(以8为基数) | 0 | 0~7 | 00、01、02、07、010、012、013、017、020、0143、0144、01747 |
3.浮点数类型常量
带小数点的数字或科学记数法表示的字符串通常解释为双精度浮点类型(double)。如果加后缀F(大写字母F,也可使用小写字母f),则解释为单精度浮点类型(float)。如果加后缀D(大写字母D,也可使用小写字母d),则解释为双精度浮点类型(double)。
下列文本常量解释为双精度浮点类型(double):
12.3、12.3D、12.3d、1.23e1、0.123e2、0.123E2
下列文本常量解释为单精度浮点类型(float):
12.3F、12.3f、1.23e1f、0.123e2f、0.123E2f
例:
double d1 = 12.3; //双精度浮点型
double d2 = 0.123E2; //双精度浮点型
double d3 = 12.3D; //双精度浮点型
float f1 = 12.3f; //单精度浮点型
float f2 = 0.123E2f; //单精度浮点型
4.布尔类型常量
布尔类型常量分别是true和false。布尔类型常量可以赋值给布尔类型变量。
例如:
boolean b1 = true;
5.字符类型常量
Java字符常量在单引号内包含所需的字符,例如’a’、‘A’、‘Z’、‘l’、’*’。另外,与C/C++相同,Java也提供转义字符,以反斜杠(\)开头,将其后面的字符转变为另外的含义,字符类型常量可以赋值给字符类型变量。
Java的转义字符:
转义字符 | Unicode码 | 意义 | 示例 |
---|---|---|---|
\n | \u000a | 回车 | |
\t | \u0009 | 水平制表符 | |
\b | \u0008 | 退格 | |
\r | \u000d | 换行 | |
\f | \u000c | 换页 | |
\’ | \u0027 | 单引号 | |
\" | \u0022 | 双引号 | |
\|\u005c | 反斜杠 | ||
\ddd | 3位八进制 | \377 | |
\udddd | 4位十六进制 | \u00ff |
注:Java在内部将字符表示为其在Unicode表中的整数代码,所以大多数情况下可以用整数65代替字符常量’A’。
例如:
char ch1 = 'A';
char ch2 = '\101'; //ASCII:65,即'A'
char ch3 = '\u0041'; //ASCII:65,即'A'
char ch4 = '好';
System.out.printf("%c,%c,%c,%c\n",ch1,ch2,ch3,ch4);
6.字符串类型常量
Java的字符串常量是用双引号("")括起来的一串字符,如"Hello,world!\n"。Java中的字符串常量作为String类的一个对象来处理,字符串常量可以赋值给String类型常量。例如:
String str1 = "我爱编程";
String str2 = "Hello,world!\n";
7.null类型常量
null是引用类型的唯一文本常量,可以为任何引用类型,赋值给任何引用类型的变量。null表示无效的或未创建的对象,即空引用。例如:
Object boj1 = null;
8.用户声明常量
在方法内部声明的常量,称为“局部变量”;在类(但不在该类内部的任何方法中)中声明的变量,称为“成员变量”、“常量字段”。
注意:相对于文本常量,用户声明的常量又称为符号常量。
局部变量的声明和赋值格式如下:
final 类型 局部常量名[ = 初值];
在声明和初始化局部变量时,在变量的前面加上关键字final,就可以把该变量指定为一个常量。局部常量只能赋一次初值(在声明时同时赋初值,或随后赋初值),指定了其值后,不能再对其进行赋值修改,否则会产生编译错误。
常量的命名规则一般采用大写字母。常量使用易于理解的名称代替数字或字符串,这样可以提高程序的可读性、健壮性和可维护性。