第二章 数据类型

§2.5字符型数据

一、字符常量

字符常量是用单引号括起来的一个字符,如‘a''A'。另外,与CC++相同,Java也提供转义字符,以反斜杠(\)开头,将其后的字符转变为另外的含义,下面列出了Java中的转义字符。

CC++不同,Java中的字符型数据是16位无符号型数据,它表示Unicode集,而不仅仅是ASCII集,例如\u0061表示ISO拉丁码的‘a'

转义字符描述:

\ddd138进制数据所表示的字符(ddd)
\uxxxx1
416进制数所表示的字符(xxxx)
\'
单引号字符
\\反斜杠字符
\r回车
\n换行
\f走纸换页
\t横向跳格
\b退格

二、字符型变量

字符型变量的类型为char,它在机器中占16位,其范围为065535。字符型变量的定义如

charc='a';//
指定变量cchar型,且赋初值为'a'

CC++不同,Java中的字符型数据不能用作整数,因为Java不供无符号整数类型。但是同样可以把它当作整数数据来操作。

例如:

intthree=3;
charone='1';
charfour=(char)(three+one);//four='4'

上例中,在计算加法时,字符型变量one被转化为整数,进行相加,最后把结果又转化为字符型。

三、字符串常量

CC++相同,Java的字符串常量是用双引号("")括起来的一串字符,如"Thisisastring.\n"。但不同的是,Java中的字符串常量是作为String类的一个对象来处理,而不是一个数据。有关类String,我们将在第七章讲述。

§2.6布尔型数据

布尔型数据只有两个值,truefalse,且它们不对应于任何整值。在流控制中常用到它。

布尔型变量的定义如:

boolean b=true;//定义b为布尔型变量,且初值为true

§2.7
举例

2.1.下例中用到了前面提到的数据类型,并通过屏幕显示们的值。

public class SimpleTypes{
public static void main(Stringargs[]){
byte b=0x55;
short s=0x55ff;
int i=1000000;
long l=0xfffL;
char c='c';
float f=0.23F;
double d=0.7E-3;
boolean bool=true;
System.out.println("b="+b);
System.out.println("s="+s);
System.out.println("i="+i);
System.out.println("l="+l);
System.out.println("c="+c);
System.out.println("f="+f);
System.out.println("d="+d);
System.out.println("bool="+bool);
}
}

编译并运行该程序,输出结果为:

C:\java SimpleTypes

b=85
s=22015
i=1000000
l=4095
c=c
f=0.23
d=0.0007
bool=true

§2.8
各类数值型数据间的混合运算

一、自动类型转换

整型、实型、字符型数据可以混合运算。运算中,不同类? 的数据先转化为同一类型,然后进行运算。转换从低级到高级。

转换规则为:

①(byteshort)opint→int
②(byte
shortint)oplong→long
③(byte
shortintlong)opfloat→float
④(byte
shortintlongfloat)opdouble→double
⑤charopint→int

其中,箭头左边表示参与运算的数据类型,op为运算符(如加减、乘、除等),右边表示转换成的进行运算的数据类型。

2.2

public class Promotion{
public static void main(Stringargs[]){
byte b=10;
char c='a';
int i=90;
long l=555L;
float f=3.5f;
double d=1.234;
float f1=f*b;//float*byte-
float
int i1=c+i;//char+int-
int
long l1=l+i1;//long+int-
ling
double d1=f1/i1-d;//float/int-
floatfloat-double-double}
}

二、强制类型转换

高级数据要转换成低级数据,需用到强制类型转换,如:

int i;
byte b=(byte)i;//
int型变量i强制转换为byte

这种使用可能会导致溢出或精度的下降,最好不要使用。

(未完,请继续)