整数字面量
八进制数 (octal, 基数是8):在值前面加一个前导0来表示,如04。
十六进制 (hexadecimal, 基数是16) :在值前面加一个前导的0x或0X表示。相较于八进制,程序员对数字更常用的是十六进制,它清楚地与8的大小相匹配,如8,16,32,和64位。
将一个整数字面量(特别强调,是字面量)赋给byte和short,如果字面量的值没有超过对应类型的范围就不会产生错误。如,
byte b = 4;
//byte b2 =128; //提示类型不匹配
short s = 5;
//short s2 = 32768; //提示类型不匹配
其中对b和s的赋值是正确的,对b2和s2的赋值会报错,提示“类型不匹配”。
但是,如果想指定一个long字面量,你需要明白地告诉编译器字面量的值是long型(或在字面量的后面加一个大写或小写的L)。
如,
//long j = 2147483648; //提示 2147483648 超出范围
long j2 = 2147483649L;
对j的赋值,eclipse会提示“The literal 2147483648 of type is out of range”,而对j2 的赋值就是正确的。
浮点型字面量
科学记数法(Scientific notation)是浮点数加一表明乘以10的指定幂次的后缀,指数是紧跟E或 e 的一个十进制的数字,它可以是正值或是负值。例子如6.022E23,314159E-05,及2e+100。
一个浮点数,不管实际数值有多大,都会被当作是double类型。为了指明一个浮点字面量,你必须在字面量后面加F或f。 也就是说字面量在float的表示范围内,如果要赋值给float型变量,也是需要强制类型转换的。如,
//float f = 1.2; //会提示“类型不匹配”。
浮点运算是有误差的。如System.out.println(1.2-1.1);
,输出的结果是“0.09999999999999987”,而不是“0.1”。
布尔型字面量
布尔型字面量仅仅有2个逻辑值,真或假。真值或假值不能用任何数字表示。如,
//boolean bo = 1; //会提示“类型不匹配”。
字符字面量
通过将字符包括在单引号之内来表示字符字面量。
对于那些不能直接被包括的字符,有若干转义序列,这样允许你输入你需要的字符。
转义序列 | 说明 |
---|---|
\ddd | 八进制字符(ddd) |
\uxxxx | 十六进制Unicode码字符 |
' | 单引号 |
" | 双引号 |
\ | 反斜杠 |
\r | 回车键 |
\n | 换行 |
\f | 换页 |
\t | 水平制表符 |
\b | 退格 |
对于 “\b”,表示回退一格,但是并不是删除一个字符。如,
System.out.println("123\b456");
System.out.println("123\b");
第一行,输出的结果为“12456”,因为“\b”试程序在输出123后回退一格,再从该位置输出456,也就是4把3覆盖了。第二行输出的结果为“123”,因为虽然同样回退了一格,但是没有继续输入,也就不会覆盖3。
对于“\t”,不是输出多少个空格这样,而是推到下一个固定位置,如,
System.out.println("123\t456");
System.out.println("12\t456");
System.out.println("1\t456");
运行结果:
123 456
12 456
1 456
对于“\r”,以前是打字机上面的回车(即把打字机的“车”从左侧返回到右侧固定位置),现在电脑上一般和“\n”换行一样。
字符串字面量
Java中的字符串字面量是将一系列字符用双引号括起来。
在Java中,字符串实际上是对象类型,有广泛的字符串处理能力,而且功能既强又好用。
网友评论