Java入门很轻松(微课超值版)
上QQ阅读APP看书,第一时间看更新

2.4 基本数据类型

Java提供了8种基本数据类型,其中6种是数值型(4种整数型,2种浮点型),2种是非数值型(字符型和布尔型),如图2-5所示。

图2-5 Java基本数据类型

2.4.1 整数类型

整数类型用来存储整数数值,即没有小数部分的数值。可以是正数,也可以是负数。整数类型根据它在内存中所占大小的不同,可以分为byte、short、int和long 4种类型。它们具有不同的取值范围,如表2-3所示。这4种数据类型占据的空间大小不同,取值范围也不同,但使用方法是一样的。用户可以根据不同的使用环境,选择不同的类型。

表2-3 Java中的整数类型

☆大牛提醒☆

在给变量或常量赋值时,要注意取值范围,当赋值超过相应范围时就会出错。

1.int型

int型变量在内存中占4字节,也就是32bit(位),在计算机中bit由0和1表示,所以int型的5在计算机中是这样显示的:

     00000000 00000000 00000000 00000101

int型变量声明的语法格式如下:

     int 变量名=变量初值

例如,以下为int型变量声明示例。

以下为错误的int型变量声明示例。

☆大牛提醒☆

int是Java整型值的默认数据类型,当代码使用整数赋值或输出时,都默认为int型,例如:

这行代码实现的功能与下面的代码一样。

2.byte型

byte型变量的声明与int型变量相同,语法格式如下:

     byte 变量名=变量初值

例如,以下为byte型变量声明示例。

以下为错误的byte型变量声明示例。

3.short型

short型变量的声明与int型变量相同,语法格式如下:

     short变量名 = 变量初值

例如,以下为short型变量声明示例。

以下为错误的short型变量声明示例。

4.long型

long型变量的取值范围比int型大,且属于高级的数据类型,为此在赋值时必须要注明长整型标识,就是用字母L或l写在数值后面,来与int型变量区分。声明的语法格式如下:

     long 变量名=变量初值

例如,以下为long型变量声明示例。

以下为错误的long型变量声明示例。

2.4.2 浮点类型

浮点型数据表示有小数部分的数字,Java中浮点型分为单精度float和双精度double两种类型,它们具有不同的取值范围,如表2-4所示。

表2-4 Java中的浮点类型

默认情况下小数都被看作double型,如果需要使用float型声明小数,则必须在小数后面添加标识符F/f,否则会出错。另外,可以使用后缀D或d来明确表明这是一个double型数据,但加不加D或d并没有硬性规定。以下为浮点类型变量声明示例。

     float x =12.25f;
     double y = 2.658d;
     double z = 2.369;

以下为错误的float型变量声明示例。

☆大牛提醒☆

浮点型数据值是近似值,在系统中计算后的结果会与实际值有偏差。

【例2.4】灵活玩遍算术题。使用int、float和double类型的数据进行简单的算术运算(源代码\ch02\2.4.txt)。

运行结果如图2-6所示。

图2-6 数值型数据类型运算输出结果

2.4.3 字符类型

Java可以把字符作为整数对待。由于Unicode编码采用无符号编码,可以存储65536个字符,其中最小值为\u0000(即0),最大值为\uffff (即65535),所以Java中的字符可以处理大多数国家的语言文字。不过有些字符有多种作用,这就有了转义字符的概念。

1.char型字符

字符型数据类型char是用于存储单个字符,它占用16位(2字节)的内存空间,在声明字符型变量时,要以单引号标识,如a就表示一个字符。声明char型变量,实例代码如下:

如果想要得到一个0~65535的数代表Unicode表中相应位置上的字符,必须使用char型显式转换。例如:

     char myChar =99;
     System.out.println(myChar);

输出结果为:

     c

这是因为99对应的是小写字母c的Unicode编码。

char的默认值是空格,char还可以与整数做运算。例如:

     char myChar = 'c',newChar;
     newChar = (char) (myChar + 1);
     System.out.println(newChar);

输出结果为:

     d

这是因为小写字母c的Unicode编码再加1,就是d。

2.转义字符

Java的转义字符是一种特殊的字符变量,以反斜杠“\”开头,后跟一个或多个字符。转义字符具有特定的含义,不同于字符原有的意义。Java中的转义字符集如表2-5所示。

表2-5 Java中的转义字符集

【例2.5】转义字符的应用。创建EscapeCharacter类,在类中定义多个转义字符并输出(源代码\ch02\2.5.txt)。

运行结果如图2-7所示。

图2-7 转义字符运算输出结果

2.4.4 布尔类型

布尔型又称逻辑型,只能取两个值true和false,分别代表布尔逻辑中的“真”与“假”。Java中布尔值不能与整数型相互转换。布尔值一般用在逻辑判断语句中。布尔型变量声明示例如下:

     boolean myFlag = true;
     System.out.println(myFlag);

输出结果为:

     true

【例2.6】布尔型数据类型的应用。创建OpenDoor类,首先弹出输入提示,然后获取用户输入的值,判断用户输入的值是否与默认值相等,最后将结果赋给一个boolean变量并输出(源代码\ch02\2.6.txt)。

运行结果如图2-8所示。

图2-8 判断口令是否正确

☆大牛提醒☆

实例【例2.6】中使用了新的Java语句:控制台获取数据。这里读者不必深究其声明与使用的过程,该部分涉及对象引用的概念,这部分的知识会在后面的章节中详细介绍。

2.4.5 字符串类型

字符本身只能够包含单个的内容,这在很多情况下是无法满足要求的,所以在Java中专门提供了一种String类型。String是引用型数据,是一个类(因此String的S一定要大写),但是这个类稍微特殊一些。如果现在使用abc在Java之中就表示定义了字符串abc。

在String类型的变量上使用了“+”,则对于String而言表示要执行字符串的连接操作。但“+”既可以表示出数据的加法操作,也可以表示字符串连接,那么如果这两种操作碰到一起会怎么样呢?如果遇到了与字符串的加法操作,所有的数据类型(基本、引用)都会自动地变为String型数据。

【例2.7】输出字符串数据类型(源代码\ch02\2.7.txt)。

运行结果如图2-9所示。

图2-9 字符串数据类型运算输出结果