Java学习

Java中的字面量

2018-05-19  本文已影响5人  FFJ

整数字面量

八进制数 (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中,字符串实际上是对象类型,有广泛的字符串处理能力,而且功能既强又好用。

上一篇 下一篇

猜你喜欢

热点阅读