常量是指在程序运行过程中保持不变,并且不可修改的量。
常量分为两种类型:
A:值常量,例如
12 、15.6 等;
B:符号常量,需要明确定义;
1.符号常量:
在Java中使用final关键字来定义符号常量,例如
final double PI=3.1415926;
注意:
符号常量可以是任何数据类型;
在定义符号常量时必须进行初始化;
符号常量通常用大写字母来表示,若常量名由两个或两个以上的单词组成,则单词全部大写并且单词间用下划线连接,例如
final int MAX_VALUE=100;
符号常量实际上是一种特殊的变量,也是占用内存空间的。
2.值常量:
a.整型常量
用来给整型变量赋值,可以用十进制,八进制和十六进制来表示,JDK7.0版本以后,还可以用二进制来表示。
整数类型:
byte,short,int,long;
十进制整型常量由0~9的数字组成,没有前缀,不能以0开始,没有小数部分,例如 124
、-36;
八进制常量以0为前缀,其后由0~7的数字组成,没有小数部分,例如 0332 、-0122
等;
十六进制整型常量以0x或0X为前缀,其后由0~9的数字和A~F(大小写均可)字母组成,没有小数部分,例如 0x3A
、-0X43f;
在JDK7.0版本中还可以使用二进制整型常量。二进制整型常量以0b或0B为前缀,其后由0、1组成,没有小数部分,例如 0b110
、0B1010 等。
整数默认为int类型,最大的int值为(2^15-1),该值由Integer.MAX_VALUE表示。
如果要表示long的常量值,则在整数值后面加一个L。例如 26L。
最大的和最小的长整型值分别由Long.MAX_VALUE
、Long.MIN_VALUE表示。
若要表示byte或short型的常量值,通常用强制类型转换,例如 (byte)0x34a5
、(short)214718746。
如果一个数超出了计算机的表示范围,称为溢出;如果超出最大值,称为上溢;如果超过最小值,称为下溢;一个整型数的最大值加1后,会产生上溢而变成同类型的最小值;最小值减1后,会产生下溢而变成同类型的最大值。
在JavaSE7.0及以后的版本中,数值常量中可以使用下划线_分隔数值,这样可以增加程序的可读性,例如 3.14_15f
、0xFF_ec_de_5e 、1234_5678_9012_3456 等。
注意:数值常量中的_只能放置于数字之间,不能放置在数字的开头或结尾;不能放置于小数点两侧;不能放置于后缀L或F之前。
b:浮点型常量
有两种表示方法,即十进制小数表示法和科学计数法。
十进制小数表示法:它是由整数部分和小数部分组成的,例如 4.0 、33.32
等。在该表示法中,小数点两边的数字不能同时省略且小数点不能省略。
注意:
浮点型常量默认为double类型,要把浮点型常量赋值给float类型变量,浮点型常量后面要加f或F。例如 float
x=12.3f ;
科学计数法:它常用来表示很大或很小的数,例如 1.2*10^26 在Java中表示为 1.2E26 。
注意:
e或E前面必须有数字,指数部分可正、可负,但都是整数(正号可省略),例如
4.2E-5 、3e6 等。
c:布尔型常量
boolean类型常量值只有true和false,true和false必须小写。
在Java中不能认为“非0值”为true,“0值”为false。
布尔型常量不能转换为任何其它数据类型。
d:字符型常量(char类型)
字符型数据就是用来表示英文字母、符号、汉字等的数据。
Java中字符采用Unicode字符集的编码方案。是16位的无符号整数,占2个字节,表示的字符为0~65535。Unicode字符集可以支持各类文字的字符。
分类:一般字符常量和转义字符常量
一般字符常量用单引号将字符括起来,例如 'a' 、'我' 。
对于不可输入字符,采用转义字符表示:所有的转义字符都以反斜线
(\)开头,后面跟一个字符来表示某个特定的转义字符。
转义字符
含义
\b
退格(Backspace)
\t 水平制表(Tab)
\f
走纸换页,只对打印有效
\n
换行
\r 回车
\\
反斜杠字符
\' 单引号字符
\" 双引号字符
\ddd 1~3位八进制所代表的ASCII字符,范围为\000~\377
\uxxxx
4位十六进制数所代表的Unicode字符,从\u0000~\uffff,可表示
所有的 Unicode字符,其中的字母u可以任意多个连续
e:字符串常量
字符串常量使用双引号括起来的一串字符序列,在字符串常量中也可以包含转义字符。
例如
“Hello\nWorld”字符串在中间加了一个换行符,输出时,这两个单词将显示在两行上。
空串:
“”。
字符串不是Java基本数据类型。字符串是字符串类java.lang.String类的一个对象。
f:
null类型
null是null类型的唯一值。
null是引用类型的常量值,表示不引用任何对象。
null类型可以转换到任何引用类型。